Method of imaging a coding pattern with replicated local tag data in each tag

ABSTRACT

A method of imaging a coding pattern disposed on a surface of a substrate. The method comprises the steps of: (a) operatively positioning an optical reader relative to the surface and capturing an image of a portion of the coding pattern; (b) sampling and decoding local tag data contained in the imaged portion; and (c) determining a position of the reader. The imaged portion has a diameter of at least one tag diameter and less than two tag diameters.

FIELD OF INVENTION

The present invention relates to a position-coding pattern on a surface.

COPENDING APPLICATIONS

The following applications have been filed by the Applicantsimultaneously with the present application:

NPT065US NPT066US NPT067US NPT068US NPT069US NPT070US NPT071US NPT072USNPT073US NPT075US NPT076US NPT077US NPT078US NPT079US NPT080US NPT081USNPT082US

The disclosures of these co-pending applications are incorporated hereinby reference. The above applications have been identified by theirfiling docket number, which will be substituted with the correspondingapplication number, once assigned.

CROSS REFERENCES

The following patents or patent applications filed by the applicant orassignee of the present invention are hereby incorporated bycross-reference.

10/815,621 10/815,635 10/815,647 11/488,162 10/815,636 11/041,65211/041,609 11/041,556 10/815,609 7,204,941 7,278,727 10/913,3807,122,076 7,156,289 09/575,197 6,720,985 7,295,839 09/722,174 7,068,3827,094,910 7,062,651 6,644,642 6,549,935 6,987,573 6,727,996 6,760,1197,064,851 6,290,349 6,428,155 6,785,016 6,831,682 6,741,871 6,965,43910/932,044 6,870,966 6,474,888 6,724,374 6,788,982 7,263,270 6,788,2936,737,591 09/693,514 10/778,056 10/778,061 11/193,482 7,055,7396,830,196 7,182,247 7,082,562 10/409,864 7,108,192 10/492,169 10/492,15210/492,168 10/492,161 7,308,148 6,957,768 7,170,499 11,856,06111/672,522 11/672,950 11,754,310 12,015,507 7,148,345

BACKGROUND

The Applicant has previously described a method of enabling users toaccess information from a computer system via a printed substrate e.g.paper. The substrate has a coding pattern printed thereon, which is readby an optical sensing device when the user interacts with with thesubstrate using the sensing device. A computer receives interaction datafrom the sensing device and uses this data to determine what action isbeing requested by the user. For example, a user may make handwritteninput onto a form or make a selection gesture around a printed item.This input is interpreted by the computer system with reference to apage description corresponding to the printed substrate.

It would desirable to improve the coding pattern on the substrate so asto maximize usage of images captured by the sensing device.

SUMMARY OF INVENTION

In a first aspect the present invention provides a substrate having acoding pattern disposed on a surface thereof, said coding patterncomprising:

-   -   a plurality of target elements defining a target grid, said        target grid comprising a plurality of cells, wherein neighboring        cells share target elements;    -   a plurality of data elements contained in each cell; and    -   a plurality of tags, each tag being defined by a plurality of        contiguous cells, each tag comprising respective local tag data        encoded by a respective set of said data elements, wherein each        tag comprises at least 9 target elements.

Optionally, each tag comprises at least 16 target elements.

Optionally, each tag comprises at least 25 target elements.

Optionally, each tag is square and comprises M² contiguous square cells,wherein M is an integer having a value of at least 2.

Optionally, said target elements are configured to facilitatecomputation of a perspective distortion of said target grid when aportion of said coding pattern is acquired by an optical sensing device.

Optionally, said target elements are sufficiently large to bedistinguishable from said data elements by a low-pass filter.

Optionally, said target elements are target dots and said data elementsare macrodots.

Optionally, each target dot has a diameter of at least twice that ofeach macrodot.

Optionally, said macrodots encode data values by pulse positionmodulation.

Optionally, a n-bit portion of data is represented by a macrodotoccupying one of 2^(n) possible positions within a cell, each positionrepresenting one of 2^(n) possible data values, wherein n is an integer.

Optionally, each tag comprises a plurality of replications of said localtag data, such that any tag-sized portion of said coding pattern isguaranteed to contain said local tag data irrespective of whether awhole tag is contained in said portion.

Optionally, each tag is square and comprises four replications of saidlocal tag data, each replication being positioned within a respectivequarter of said tag.

Optionally, said local tag data identifies a location of a respectivetag.

Optionally, each tag comprises common data encoded by a respective setof said data elements, wherein said common data is defined as datacommon to a plurality of contiguous tags.

Optionally, each cell comprises a fragment of said common data, andcontiguous cells are arranged such that any tag-sized portion of saidcoding pattern is guaranteed to contain said common data irrespective ofwhether a whole tag is contained in said portion.

Optionally, said common data is region identity data uniquelyidentifying a region of said surface.

Optionally, said common data uniquely identifies said substrate.

Optionally, each cell comprises orientation data encoded by a respectiveset of said data elements, said orientation data identifying anorientation of said coding pattern with respect to said surface.

Optionally, each cell comprises translation data encoded by a respectiveset of said data elements, said translation data identifying atranslation of said cell relative to a tag containing said cell.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

In a second aspect the present invention provides a substrate having acoding pattern disposed on a surface thereof, said coding patterncomprising:

-   -   a plurality of target elements defining a target grid, said        target grid comprising a plurality of cells, wherein neighboring        cells share target elements;    -   a plurality of data elements contained in each cell; and    -   a plurality of tags, each tag being defined by a plurality of        contiguous cells, each tag comprising respective local tag data        encoded by a respective set of said data elements, wherein said        data elements encode data values by pulse position modulation.

Optionally, said data elements are macrodots.

Optionally, a portion of data is represented by a macrodot occupying oneof a plurality of possible positions within a cell, each positionrepresenting one of a plurality of possible data values.

Optionally, a n-bit portion of data is represented by a macrodotoccupying one of 2^(n) possible positions within a cell, each positionrepresenting one of 2^(n) possible data values, wherein n is an integer.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

Optionally, each symbol comprises two halves, each half comprising 2bits of data represented by a macrodot occupying one of 4 possiblepositions within said half.

Optionally, said local tag data is encoded as a local codeword comprisedof a set of said Reed-Solomon symbols.

Optionally, each tag comprises a plurality of replications of said localcodeword, such that any tag-sized portion of said coding pattern isguaranteed to contain said local codeword irrespective of whether awhole tag is contained in said portion.

Optionally, each tag is square and comprises four replications of saidlocal codeword, each replication being positioned within a respectivequarter of said tag.

Optionally, each local codeword identifies a location of a respectivetag.

Optionally, each tag comprises one or more common codewords, each commoncodeword being comprised of a set of said Reed-Solomon symbols, whereinsaid one or more common codewords are defined as codewords common to aplurality of contiguous tags.

Optionally, each symbol group comprises a fragment of at least one ofsaid one or more common codewords, and contiguous symbol groups arearranged such that any tag-sized portion of said coding pattern isguaranteed to contain said one or more common codewords irrespective ofwhether a whole tag is contained in said portion.

Optionally, said one or more common codewords encode region identitydata uniquely identifying a region of said surface.

Optionally, said one or more common codewords uniquely identifies saidsubstrate.

Optionally, each cell comprises an orientation symbol encoded by atleast one data element, said orientation symbol identifying anorientation of said coding pattern with respect to said surface.

Optionally, each cell comprises one or more translation symbols encodedby a respective set of said data elements, said translation symbolsidentifying a translation of said cell relative to a tag containing saidcell.

Optionally, each cell comprises a pair of orthogonal translationsymbols, each orthogonal translation symbol identifying a respectiveorthogonal translation of said cell relative to a tag containing saidcell.

Optionally, each tag is square and comprises M² contiguous square cells,wherein M is an integer having a value of at least 2.

Optionally, said target elements are sufficiently large to bedistinguishable from said data elements by a low-pass filter.

Optionally, said target elements are target dots and said data elementsare macrodots, and wherein each target dot has a diameter of at leasttwice that of each macrodot.

In a third aspect the present invention provides a substrate having acoding pattern disposed on a surface thereof, said coding patterncomprising:

-   -   a plurality of target elements defining a target grid, said        target grid comprising a plurality of cells, wherein neighboring        cells share target elements;    -   a plurality of data elements contained in each cell; and    -   a plurality of tags, each tag being defined by a plurality of        contiguous cells, each tag comprising respective tag data        encoded by a respective set of said data elements, wherein each        cell comprises at least one orientation symbol encoded by at        least one data element, such that any tag-sized portion of said        coding pattern is guaranteed to contain a plurality of said        orientation symbols, each orientation symbol identifying an        orientation of a layout of said tag data with respect to said        target grid.

Optionally, each orientation symbol comprises a data element positionedat one of four possible positions within each cell, each positionrepresenting one of four possible orientations.

Optionally, each orientation symbol is readable by an optical sensingdevice at any of said four orientations.

Optionally, each tag comprises N cells, and at least N orientationsymbols form an orientation code with minimum distance N, wherein N isan integer having a value of at least 4.

Optionally, said cells are arranged such that any tag-sized portion ofsaid coding pattern is guaranteed to contain said orientation codecomprising at least N orientation symbols.

Optionally, said data elements are macrodots.

Optionally, a portion of data is represented by a macrodot occupying oneof a plurality of possible positions within a cell, each positionrepresenting one of a plurality of possible data values.

Optionally, a n-bit portion of data is represented by a macrodotoccupying one of 2^(n) possible positions within a cell, each positionrepresenting one of 2^(n) possible data values, wherein n is an integer.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

Optionally, each orientation symbol identifies an orientation of alayout of said Reed-Solomon symbols with respect to said target grid.

Optionally, said tag data is encoded as a local codeword comprised of aset of said Reed-Solomon symbols.

Optionally, each tag comprises a plurality of replications of said localcodeword, such that any tag-sized portion of said coding pattern isguaranteed to contain said local codeword irrespective of whether awhole tag is contained in said portion.

Optionally, each tag is square and comprises four replications of saidlocal codeword, each replication being positioned within a respectivequarter of said tag.

Optionally, each local codeword identifies a location of a respectivetag.

Optionally, each tag comprises one or more common codewords, each commoncodeword being comprised of a set of said Reed-Solomon symbols, whereinsaid one or more common codewords are defined as codewords common to aplurality of contiguous tags.

Optionally, each symbol group comprises a fragment of at least one ofsaid one or more common codewords, and contiguous symbol groups arearranged such that any tag-sized portion of said coding pattern isguaranteed to contain said one or more common codewords irrespective ofwhether a whole tag is contained in said portion.

Optionally, said one or more common codewords encode region identitydata uniquely identifying a region of said surface.

Optionally, said one or more common codewords uniquely identifies saidsubstrate.

Optionally, each cell comprises one or more translation symbols encodedby a respective set of said data elements, said translation symbolsidentifying a translation of said cell relative to a tag containing saidcell.

Optionally, each cell comprises a pair of orthogonal translationsymbols, each orthogonal translation symbol identifying a respectiveorthogonal translation of said cell relative to a tag containing saidcell.

In a fourth aspect the present invention provides a substrate having acoding pattern disposed on a surface thereof, said coding patterncomprising:

-   -   a plurality of target elements defining a target grid, said        target grid comprising a plurality of cells, wherein neighboring        cells share target elements;    -   a plurality of data elements contained in each cell; and    -   a plurality of tags, each tag being defined by a plurality of        contiguous cells, each tag comprising respective local tag data        encoded by a respective set of said data elements, wherein each        tag comprises a plurality of replications of said local tag        data, such that any tag-sized portion of said coding pattern is        guaranteed to contain said local tag data irrespective of        whether a whole tag is contained in said portion.

Optionally, each tag is square and comprises four replications of saidlocal tag data, each replication being positioned within a respectivequarter of said tag.

Optionally, said local tag data identifies a location of a respectivetag.

Optionally, said data elements are macrodots.

Optionally, a portion of data is represented by a macrodot occupying oneof a plurality of possible positions within a cell, each positionrepresenting one of a plurality of possible data values.

Optionally, a n-bit portion of data is represented by a macrodotoccupying one of 2^(n) possible positions within a cell, each positionrepresenting one of 2^(n) possible data values, wherein n is an integer.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

Optionally, each symbol comprises two halves, each half comprising 2bits of data represented by a macrodot occupying one of 4 possiblepositions within said half.

Optionally, said local tag data is encoded as a local codeword comprisedof a set of said Reed-Solomon symbols.

Optionally, each tag comprises a plurality of replications of said localcodeword, such that any tag-sized portion of said coding pattern isguaranteed to contain said local codeword irrespective of whether awhole tag is contained in said portion.

Optionally, each tag is square and comprises four replications of saidlocal codeword, each replication being positioned within a respectivequarter of said tag.

Optionally, each tag comprises one or more common codewords, each commoncodeword being comprised of a set of said Reed-Solomon symbols, whereinsaid one or more common codewords are defined as codewords common to aplurality of contiguous tags.

Optionally, each symbol group comprises a fragment of at least one ofsaid one or more common codewords, and contiguous symbol groups arearranged such that any tag-sized portion of said coding pattern isguaranteed to contain said one or more common codewords irrespective ofwhether a whole tag is contained in said portion.

Optionally, said one or more common codewords encode region identitydata uniquely identifying a region of said surface.

Optionally, said one or more common codewords uniquely identifies saidsubstrate.

Optionally, each cell comprises an orientation symbol encoded by atleast one data element, said orientation symbol identifying anorientation of said coding pattern with respect to said surface.

Optionally, each cell comprises one or more translation symbols encodedby a respective set of said data elements, said translation symbolsidentifying a translation of said cell relative to a tag containing saidcell.

Optionally, each cell comprises a pair of orthogonal translationsymbols, each orthogonal translation symbol identifying a respectiveorthogonal translation of said cell relative to a tag containing saidcell.

Optionally, each tag is square and comprises M² contiguous square cells,wherein M is an integer having a value of at least 2.

Optionally, said target elements are target dots and said data elementsare macrodots, and wherein each target dot has a diameter of at leasttwice that of each macrodot.

In a fifth aspect the present invention provides a substrate having acoding pattern disposed on a surface thereof, said coding patterncomprising:

-   -   a plurality of target elements defining a target grid, said        target grid comprising a plurality of cells, wherein neighboring        cells share target elements;    -   a plurality of data elements contained in each cell; and    -   a plurality of tags, each tag being defined by a plurality of        contiguous cells, each tag comprising respective local tag data        encoded by a respective set of said data elements, each tag        comprising common data encoded by a respective set of said data        elements, said common data being defined as data common to a        plurality of contiguous tags,        wherein each cell comprises a fragment of said common data, and        contiguous cells are arranged such that any tag-sized portion of        said coding pattern is guaranteed to contain said common data        irrespective of whether a whole tag is contained in said        portion.

Optionally, said common data is region identity data uniquelyidentifying a region of said surface.

Optionally, said common data uniquely identifies said substrate.

Optionally, said data elements are macrodots.

Optionally, a portion of data is represented by a macrodot occupying oneof a plurality of possible positions within a cell, each positionrepresenting one of a plurality of possible data values.

Optionally, a n-bit portion of data is represented by a macrodotoccupying one of 2^(n) possible positions within a cell, each positionrepresenting one of 2^(n) possible data values, wherein n is an integer.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

Optionally, each symbol comprises two halves, each half comprising 2bits of data represented by a macrodot occupying one of 4 possiblepositions within said half.

Optionally, said common data is encoded as one or more common codewords,each common codeword being comprised of a set of said Reed-Solomonsymbols.

Optionally, each symbol group comprises a fragment of at least one ofsaid one or more common codewords, and contiguous symbol groups arearranged such that any tag-sized portion of said coding pattern isguaranteed to contain said one or more common codewords irrespective ofwhether a whole tag is contained in said portion.

Optionally, said local tag data is encoded as a local codeword comprisedof a set of said Reed-Solomon symbols.

Optionally, each tag comprises a plurality of replications of said localcodeword, such that any tag-sized portion of said coding pattern isguaranteed to contain said local codeword irrespective of whether awhole tag is contained in said portion.

Optionally, each tag is square and comprises four replications of saidlocal codeword, each replication being positioned within a respectivequarter of said tag.

Optionally, said local tag data identifies a location of a respectivetag.

Optionally, each cell comprises an orientation symbol encoded by atleast one data element, said orientation symbol identifying anorientation of said coding pattern with respect to said surface.

Optionally, each cell comprises one or more translation symbols encodedby a respective set of said data elements, said translation symbolsidentifying a translation of said cell relative to a tag containing saidcell.

Optionally, each cell comprises a pair of orthogonal translationsymbols, each orthogonal translation symbol identifying a respectiveorthogonal translation of said cell relative to a tag containing saidcell.

Optionally, each tag is square and comprises M² contiguous square cells,wherein M is an integer having a value of at least 2.

Optionally, said target elements are sufficiently large to bedistinguishable from said data elements by a low-pass filter.

Optionally, said target elements are target dots and said data elementsare macrodots, and wherein each target dot has a diameter of at leasttwice that of each macrodot.

In a sixth aspect the present invention provides substrate having acoding pattern disposed on a surface thereof, said coding patterncomprising:

-   -   a plurality of target elements defining a target grid, said        target grid comprising a plurality of cells, wherein neighboring        cells share target elements;    -   a plurality of data elements contained in each cell; and    -   a plurality of tags, each tag being defined by a plurality of        contiguous cells, each tag comprising respective tag data        encoded by a respective set of said data elements,        wherein each cell comprises one or more translation symbols        encoded by a respective set of said data elements, said one or        more translation symbols identifying a translation of said cell        relative to a tag containing said cell.

Optionally, each cell comprises a pair of orthogonal translationsymbols, each orthogonal translation symbol identifying a respectiveorthogonal translation of said cell relative to a tag containing saidcell.

Optionally, each tag is square and comprises M² contiguous square cells,wherein M is an integer having a value of at least 2.

Optionally, M translation symbols in a row of M cells define a cyclicposition code having minimum distance M, said code being defined by afirst codeword.

Optionally, M translation symbols in a column of M cells define a cyclicposition code having minimum distance M, said code being defined by asecond codeword.

Optionally, each tag comprises N cells, and at least N translationsymbols form a third codeword with minimum distance N, wherein N is aninteger having a value of at least 4.

Optionally, any tag-sized portion of said coding pattern is guaranteedto contain at least N translation symbols, thereby capturing said thirdcodeword.

Optionally, each cell comprises at least one orientation symbol encodedby at least one data element, such that any tag-sized portion of saidcoding pattern is guaranteed to contain a plurality of said orientationsymbols, each orientation symbol identifying an orientation of saidcoding pattern with respect to said surface.

Optionally, said data elements are macrodots.

Optionally, a portion of data is represented by a macrodot occupying oneof a plurality of possible positions within a cell, each positionrepresenting one of a plurality of possible data values.

Optionally, a n-bit portion of data is represented by a macrodotoccupying one of 2^(n) possible positions within a cell, each positionrepresenting one of 2^(n) possible data values, wherein n is an integer.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

Optionally, each symbol comprises two halves, each half comprising 2bits of data represented by a macrodot occupying one of 4 possiblepositions within said half.

Optionally, said tag data is encoded as a local codeword comprised of aset of said Reed-Solomon symbols.

Optionally, each tag comprises a plurality of replications of said localcodeword, such that any tag-sized portion of said coding pattern isguaranteed to contain said local codeword irrespective of whether awhole tag is contained in said portion.

Optionally, each tag is square and comprises four replications of saidlocal codeword, each replication being positioned within a respectivequarter of said tag.

Optionally, each local codeword identifies a location of a respectivetag.

Optionally, each tag comprises one or more common codewords, each commoncodeword being comprised of a set of said Reed-Solomon symbols, whereinsaid one or more common codewords are defined as codewords common to aplurality of contiguous tags.

Optionally, each symbol group comprises a fragment of at least one ofsaid one or more common codewords, and contiguous symbol groups arearranged such that any tag-sized portion of said coding pattern isguaranteed to contain said one or more common codewords irrespective ofwhether a whole tag is contained in said portion.

Optionally, said one or more common codewords encode region identitydata uniquely identifying a region of said surface.

In a seventh aspect the present invention provides a method of imaging acoding pattern disposed on a surface of a substrate, said methodcomprising the steps of:

-   -   (a) positioning a nib of an optical reader on said surface and        capturing an image of a portion of said coding pattern, said        coding pattern comprising:        -   a plurality of target elements defining a target grid, said            target grid comprising a plurality of cells, wherein            neighboring cells share target elements;        -   a plurality of data elements contained in each cell; and        -   a plurality of tags, each tag being defined by a plurality            of contiguous cells, each tag comprising respective local            tag data encoded by a respective set of said data elements,            wherein each tag comprises at least 9 target elements;    -   (b) locating at least 9 target elements in said imaged portion;    -   (c) observing a perspective distortion of said target elements        due to a 3D orientation of said reader relative to said surface;    -   (d) calculating a 2D perspective transform using said target        elements; and    -   (e) determining a position of said nib on said surface using at        least said 2D perspective transform and said local tag data,        wherein said portion of said coding pattern has a diameter of at        least one tag diameter and less than two tag diameters.

Optionally, each tag comprises at least 16 target elements and at least16 target elements are located in step (b).

Optionally, each tag comprises at least 25 target elements and at least25 target elements are located in step (b).

Optionally, each tag is square and comprises M² contiguous square cells,wherein M is an integer having a value of at least 2.

Optionally, step (b) comprises the sub-step of low-pass filtering saidcaptured image so as to obscure said data elements and preserve saidtarget elements.

Optionally, said target elements are target dots and said data elementsare macrodots.

Optionally, each target dot has a diameter of at least twice that ofeach macrodot.

Optionally, said macrodots encode data values by pulse positionmodulation.

Optionally, a n-bit portion of data is represented by a macrodotoccupying one of 2^(n) possible positions within a cell, each positionrepresenting one of 2^(n) possible data values, wherein n is an integer.

Optionally, each tag comprises a plurality of replications of said localtag data, such that said tag-sized portion of said coding pattern isguaranteed to contain said local tag data irrespective of whether awhole tag is contained in said portion.

Optionally, each tag is square and comprises four replications of saidlocal tag data, each replication being positioned within a respectivequarter of said tag.

Optionally, said local tag data identifies a location of a respectivetag.

In a further aspect the present invention provides a system for imaginga coding pattern disposed on a surface of a substrate, said systemcomprising:

(A) said substrate, wherein said coding pattern comprises:

-   -   a plurality of target elements defining a target grid, said        target grid comprising a plurality of cells, wherein neighboring        cells share target elements;    -   a plurality of data elements contained in each cell; and    -   a plurality of tags, each tag being defined by a plurality of        contiguous cells, each tag comprising respective local tag data        encoded by a respective set of said data elements, each tag        comprising at least 9 target elements;

(B) an optical reader comprising:

-   -   an image sensor for capturing an image of a portion of said        coding pattern, said image sensor having a field-of-view of at        least one tag diameter and less than two tag diameters;    -   a nib; and    -   a processor configured for performing the steps of:        -   (i) locating at least 9 target elements in said            field-of-view;        -   (ii) observing a perspective distortion of said target            elements due to a 3D orientation of said reader relative to            said surface;        -   (iii) calculating a 2D perspective transform using said            target elements; and        -   (iv) determining a position of said nib on said surface            using at least said 2D perspective transform and said local            tag data.

Optionally, each tag comprises at least 16 target elements and saidprocessor is configured for locating at least 16 target elements.

Optionally, each tag comprises at least 25 target elements and saidprocessor is configured for locating at least 25 target elements.

Optionally, each tag is square and comprises M² contiguous square cells,wherein M is an integer having a value of at least 2.

Optionally, said processor is configured for low-pass filtering saidcaptured image so as to obscure said data elements and preserve saidtarget elements.

Optionally, said target elements are target dots and said data elementsare macrodots.

Optionally, said reader is an optically imaging pen.

Optionally, said local tag data identifies a location of a respectivetag.

In an eighth aspect the present invention provides a method of imaging acoding pattern disposed on a surface of a substrate, said methodcomprising the steps of:

-   -   (a) capturing an image of a portion of said coding pattern, said        coding pattern comprising:        -   a plurality of target elements defining a target grid, said            target grid comprising a plurality of cells, wherein            neighboring cells share target elements;        -   a plurality of data elements contained in each cell; and        -   a plurality of tags, each tag being defined by a plurality            of contiguous cells, each tag comprising respective local            tag data encoded by a respective set of said data elements,            wherein said data elements encode data values by pulse            position modulation; and    -   (b) low-pass filtering said captured image so as to obscure said        data elements and preserve said target elements.

Optionally, said data elements are macrodots.

Optionally, a portion of data is represented by a macrodot occupying oneof a plurality of possible positions within a cell, each positionrepresenting one of a plurality of possible data values.

Optionally, a n-bit portion of data is represented by a macrodotoccupying one of 2^(n) possible positions within a cell, each positionrepresenting one of 2^(n) possible data values, wherein n is an integer.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

Optionally, each symbol comprises two halves, each half comprising 2bits of data represented by a macrodot occupying one of 4 possiblepositions within said half.

Optionally, said local tag data is encoded as a local codeword comprisedof a set of said Reed-Solomon symbols.

Optionally, each tag comprises a plurality of replications of said localcodeword, such that any tag-sized portion of said coding pattern isguaranteed to contain said local codeword irrespective of whether awhole tag is contained in said portion.

Optionally, each local codeword identifies a location of a respectivetag.

In a another aspect the present invention provides the method comprisingthe further steps of:

-   -   observing a perspective distortion of said preserved target        elements due to a 3D orientation of said reader relative to said        surface; and    -   calculating a 2D perspective transform using said target        elements.

In another aspect the present invention provides a system for imaging acoding pattern disposed on a surface of a substrate, said systemcomprising the steps of:

(A) said substrate, wherein said coding pattern comprises:

-   -   a plurality of target elements defining a target grid, said        target grid comprising a plurality of cells, wherein neighboring        cells share target elements;    -   a plurality of data elements contained in each cell; and    -   a plurality of tags, each tag being defined by a plurality of        contiguous cells, each tag comprising respective local tag data        encoded by a respective set of said data elements, wherein said        data elements encode data values by pulse position modulation,        and

(B) an optical reader comprising:

-   -   an image sensor for capturing an image of a portion of said        coding pattern; and    -   a processor configured for low-pass filtering said captured        image so as to obscure said data elements and preserve said        target elements.

Optionally, said data elements are macrodots.

Optionally, a portion of data is represented by a macrodot occupying oneof a plurality of possible positions within a cell, each positionrepresenting one of a plurality of possible data values.

Optionally, a n-bit portion of data is represented by a macrodotoccupying one of 2^(n) possible positions within a cell, each positionrepresenting one of 2^(n) possible data values, wherein n is an integer.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

Optionally, each symbol comprises two halves, each half comprising 2bits of data represented by a macrodot occupying one of 4 possiblepositions within said half.

Optionally, said local tag data is encoded as a local codeword comprisedof a set of said Reed-Solomon symbols.

Optionally, each tag comprises a plurality of replications of said localcodeword, such that any tag-sized portion of said coding pattern isguaranteed to contain said local codeword irrespective of whether awhole tag is contained in said portion.

Optionally, said reader is an optically imaging pen having a nib.

Optionally, said processor is further configured for:

-   -   observing a perspective distortion of said preserved target        elements due to a 3D orientation of said reader relative to said        surface; and    -   calculating a 2D perspective transform using said target        elements.

In a ninth aspect the present invention provides a method of imaging acoding pattern disposed on a surface of a substrate, said methodcomprising the steps of:

-   -   (a) operatively positioning an optical reader relative to said        surface and capturing an image of a portion of said coding        pattern, said coding pattern comprising:        -   a plurality of target elements defining a target grid, said            target grid comprising a plurality of cells, wherein            neighboring cells share target elements;        -   a plurality of data elements contained in each cell; and        -   a plurality of tags, each tag being defined by a plurality            of contiguous cells, each tag comprising respective tag data            encoded by a respective set of said data elements, wherein            each cell comprises at least one orientation symbol encoded            by at least one data element, each orientation symbol            identifying an orientation of a layout of said tag data with            respect to said target grid;    -   (b) sampling and decoding at least three of said orientation        symbols contained in said imaged portion;    -   (c) determining, from the decoded orientation symbols, the        orientation of the layout of the tag data relative to the target        grid; and    -   (d) using said determined orientation to sample and decode said        tag data.        wherein said portion has a diameter of at least one tag diameter        and less than two tag diameters.

Optionally, said determined orientation is a maximum likelihoodorientation.

Optionally, step (c) further comprises:

-   -   determining the orientation of the reader relative to said        surface.

Optionally, said tag data identifies a location of respective tag.

Optionally, each orientation symbol comprises a data element positionedat one of four possible positions within each cell, each positionrepresenting one of four possible orientations.

Optionally, each tag comprises N cells, and at least N orientationsymbols form an orientation code with minimum distance N, wherein N isan integer having a value of at least 4.

Optionally, said cells are arranged such that any tag-sized portion ofsaid coding pattern is guaranteed to contain said orientation codecomprising at least N orientation symbols.

Optionally, a portion of data is represented by a macrodot occupying oneof a plurality of possible positions within a cell, each positionrepresenting one of a plurality of possible data values.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

Optionally, each orientation symbol identifies an orientation of alayout of said Reed-Solomon symbols with respect to said target grid.

In a further aspect there is provided a system for imaging a codingpattern disposed on a surface of a substrate, said system comprising:

(A) said substrate, wherein said coding pattern comprises:

-   -   a plurality of target elements defining a target grid, said        target grid comprising a plurality of cells, wherein neighboring        cells share target elements;    -   a plurality of data elements contained in each cell; and    -   a plurality of tags, each tag being defined by a plurality of        contiguous cells, each tag comprising respective tag data        encoded by a respective set of said data elements, wherein each        cell comprises at least one orientation symbol encoded by at        least one data element, each orientation symbol identifying an        orientation of a layout of said tag data with respect to said        target grid;

(B) an optical reader comprising:

-   -   an image sensor for capturing an image of a portion of said        coding pattern, said image sensor having a field-of-view of at        least one tag diameter and less than two tag diameters; and    -   a processor configured for performing the steps of:        -   (i) sampling and decoding at least three of said orientation            symbols;        -   (ii) determining, from the decoded orientation symbols, the            orientation of the layout of the tag data relative to the            target grid; and        -   (iii) using said determined orientation to sample and decode            said tag data.

Optionally, said orientation determined by said processor is a maximumlikelihood orientation.

Optionally, said processor is configured to perform the further step of:

-   -   determining the orientation of said reader relative to said        surface

Optionally, said tag data identifies a location of a respective tag.

Optionally, each orientation symbol comprises a data element positionedat one of four possible positions within each cell, each positionrepresenting one of four possible orientations.

Optionally, each tag comprises N cells, and at least N orientationsymbols form an orientation code with minimum distance N, wherein N isan integer having a value of at least 4.

Optionally, said cells are arranged such that any tag-sized portion ofsaid coding pattern is guaranteed to contain said orientation codecomprising at least N orientation symbols.

Optionally, a portion of data is represented by a macrodot occupying oneof a plurality of possible positions within a cell, each positionrepresenting one of a plurality of possible data values.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

Optionally, each orientation symbol identifies an orientation of alayout of said Reed-Solomon symbols with respect to said target grid.

In a tenth aspect the present invention provides a method of imaging acoding pattern disposed on a surface of a substrate, said methodcomprising the steps of:

-   -   (a) operatively positioning an optical reader relative to said        surface and capturing an image of a portion of said coding        pattern, said coding pattern comprising:        -   a plurality of target elements defining a target grid, said            target grid comprising a plurality of cells, wherein            neighboring cells share target elements;        -   a plurality of data elements contained in each cell; and        -   a plurality of tags, each tag being defined by a plurality            of contiguous cells, each tag comprising respective local            tag data encoded by a respective set of said data elements,            wherein each tag comprises a plurality of replications of            said local tag data;    -   (b) sampling and decoding said local tag data contained in said        imaged portion; and    -   (c) determining a position of said reader, wherein said portion        has a diameter of at least one tag diameter and less than two        tag diameters.

Optionally, each tag is square and comprises four replications of saidlocal tag data, each replication being positioned within a respectivequarter of said tag.

Optionally, said local tag data identifies a location of a respectivetag.

Optionally, said data elements are macrodots.

Optionally, a portion of data is represented by a macrodot occupying oneof a plurality of possible positions within a cell, each positionrepresenting one of a plurality of possible data values.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

Optionally, each symbol comprises two halves, each half comprising 2bits of data represented by a macrodot occupying one of 4 possiblepositions within said half.

Optionally, said local tag data is encoded as a local codeword comprisedof a set of said Reed-Solomon symbols.

Optionally, each tag comprises a plurality of replications of said localcodeword, such that any tag-sized portion of said coding pattern isguaranteed to contain said local codeword irrespective of whether awhole tag is contained in said portion.

Optionally, each tag is square and comprises four replications of saidlocal codeword, each replication being positioned within a respectivequarter of said tag.

In a further aspect there is provided a system for imaging a codingpattern disposed on a surface of a substrate, said system comprising:

(A) said substrate, wherein said coding pattern comprises:

-   -   a plurality of target elements defining a target grid, said        target grid comprising a plurality of cells, wherein neighboring        cells share target elements;    -   a plurality of data elements contained in each cell; and    -   a plurality of tags, each tag being defined by a plurality of        contiguous cells, each tag comprising respective local tag data        encoded by a respective set of said data elements, wherein each        tag comprises a plurality of replications of said local tag        data,

(B) an optical reader comprising:

-   -   an image sensor for capturing an image of a portion of said        coding pattern, said image sensor having a field-of-view of at        least one tag diameter and less than two tag diameters; and    -   a processor configured for performing the steps of:        -   (i) sampling and decoding said local tag data; and        -   (ii) determining a position of said reader.

Optionally, each tag is square and comprises four replications of saidlocal tag data, each replication being positioned within a respectivequarter of said tag.

Optionally, said local tag data identifies a location of a respectivetag.

Optionally, said data elements are macrodots.

Optionally, a portion of data is represented by a macrodot occupying oneof a plurality of possible positions within a cell, each positionrepresenting one of a plurality of possible data values.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

Optionally, each symbol comprises two halves, each half comprising 2bits of data represented by a macrodot occupying one of 4 possiblepositions within said half.

Optionally, said local tag data is encoded as a local codeword comprisedof a set of said Reed-Solomon symbols.

Optionally, each tag comprises a plurality of replications of said localcodeword, such that any tag-sized portion of said coding pattern isguaranteed to contain said local codeword irrespective of whether awhole tag is contained in said portion.

Optionally, said reader is an optically imaging pen having a nib.

In an eleventh aspect the present invention provides a method of imaginga coding pattern disposed on a surface of a substrate, said methodcomprising the steps of:

-   -   (a) operatively positioning an optical reader relative to said        surface and capturing an image of a portion of said coding        pattern, said coding pattern comprising:        -   a plurality of target elements defining a target grid, said            target grid comprising a plurality of cells, wherein            neighboring cells share target elements;        -   a plurality of data elements contained in each cell; and        -   a plurality of tags, each tag being defined by a plurality            of contiguous cells, each tag comprising respective local            tag data encoded by a respective set of said data elements,            each tag comprising common data encoded by a respective set            of said data elements, said common data being defined as            data common to a plurality of contiguous tags,            wherein each cell comprises a fragment of said common data;    -   (b) sampling and decoding each fragment of common data contained        in said imaged portion; and    -   (c) assembling said decoded fragments to determine said common        data, wherein said portion has a diameter of at least one tag        diameter and less than two tag diameters.

Optionally, said common data is region identity data uniquelyidentifying a region of said surface.

Optionally, said common data uniquely identifies said substrate.

Optionally, said data elements are macrodots.

Optionally, a portion of data is represented by a macrodot occupying oneof a plurality of possible positions within a cell, each positionrepresenting one of a plurality of possible data values.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

Optionally, each symbol comprises two halves, each half comprising 2bits of data represented by a macrodot occupying one of 4 possiblepositions within said half.

Optionally, said common data is encoded as one or more common codewords,each common codeword being comprised of a set of said Reed-Solomonsymbols.

Optionally, each symbol group comprises a fragment of at least one ofsaid one or more common codewords, and contiguous symbol groups arearranged such that any tag-sized portion of said coding pattern isguaranteed to contain said one or more common codewords irrespective ofwhether a whole tag is contained in said portion.

In another aspect the method further comprising the step of:

-   -   sampling and decoding said local tag data.

In a further aspect there is provided a system for imaging a codingpattern disposed on a surface of a substrate, said system comprising:

(A) said substrate, wherein said coding pattern comprises:

-   -   a plurality of target elements defining a target grid, said        target grid comprising a plurality of cells, wherein neighboring        cells share target elements;        -   a plurality of data elements contained in each cell; and        -   a plurality of tags, each tag being defined by a plurality            of contiguous cells, each tag comprising respective local            tag data encoded by a respective set of said data elements,            each tag comprising common data encoded by a respective set            of said data elements, said common data being defined as            data common to a plurality of contiguous tags,

(B) an optical reader comprising:

-   -   an image sensor for capturing an image of a portion of said        coding pattern, said image sensor having a field-of-view of at        least one tag diameter and less than two tag diameters; and    -   a processor configured for performing the steps of:        -   (i) sampling and decoding each fragment of common data            visible in said field-of-view; and        -   (ii) assembling said decoded fragments to determine said            common data.

Optionally, said common data is region identity data uniquelyidentifying a region of said surface.

Optionally, said common data uniquely identifies said substrate.

Optionally, said data elements are macrodots.

Optionally, a portion of data is represented by a macrodot occupying oneof a plurality of possible positions within a cell, each positionrepresenting one of a plurality of possible data values.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

Optionally, each symbol comprises two halves, each half comprising 2bits of data represented by a macrodot occupying one of 4 possiblepositions within said half.

Optionally, said common data is encoded as one or more common codewords,each common codeword being comprised of a set of said Reed-Solomonsymbols.

Optionally, each symbol group comprises a fragment of at least one ofsaid one or more common codewords, and contiguous symbol groups arearranged such that any tag-sized portion of said coding pattern isguaranteed to contain said one or more common codewords irrespective ofwhether a whole tag is contained in said portion.

Optionally, said reader is an optically imaging pen having a nib.

In a twelfth aspect the present invention provides a method of imaging acoding pattern disposed on a surface of a substrate, said methodcomprising the steps of:

-   -   (a) operatively positioning an optical reader relative to said        surface and capturing an image of a portion of said coding        pattern, said coding pattern comprising:        -   a plurality of target elements defining a target grid, said            target grid comprising a plurality of cells, wherein            neighboring cells share target elements;        -   a plurality of data elements contained in each cell; and        -   a plurality of tags, each tag being defined by a plurality            of contiguous cells, each tag comprising respective tag data            encoded by a respective set of said data elements, wherein            each cell comprises one or more translation symbols encoded            by a respective set of said data elements, said one or more            translation symbols identifying a translation of said cell            relative to a tag containing said cell;    -   (b) sampling and decoding one or more translation symbols        contained in said imaged portion;    -   (c) determining a translation of one or more cells relative to a        tag containing said one or more cells; and    -   (d) using said determined translation to sample and decode said        tag data.

Optionally, said determined translation is a maximum likelihoodtranslation.

Optionally, step (c) comprises:

-   -   aligning said tag with said target grid.

Optionally, each cell comprises a pair of orthogonal translationsymbols, each orthogonal translation symbol identifying a respectiveorthogonal translation of said cell relative to a tag containing saidcell.

Optionally, each tag is square and comprises M² contiguous square cells,wherein M is an integer having a value of at least 2.

Optionally, M translation symbols in a row of M cells define a cyclicposition code having minimum distance M, said code being defined by afirst codeword, and wherein step (b) comprises decoding said firstcodeword.

Optionally, M translation symbols in a column of M cells define a cyclicposition code having minimum distance M, said code being defined by asecond codeword, and wherein step (b) comprises decoding said secondcodeword.

Optionally, each tag comprises N cells, and at least N translationsymbols form a third codeword with minimum distance N, wherein N is aninteger having a value of at least 4, and wherein step (b) comprisesdecoding said third codeword.

Optionally, said captured image contains a tag-sized portion of saidcoding pattern, and said tag-sized portion contains at least Ntranslation symbols.

Optionally, each cell comprises at least one orientation symbol encodedby at least one data element, such that any tag-sized portion of saidcoding pattern is guaranteed to contain a plurality of said orientationsymbols, each orientation symbol identifying an orientation of a layoutof said tag data with respect to said target grid.

Optionally, said data elements are macrodots.

Optionally, a portion of data is represented by a macrodot occupying oneof a plurality of possible positions within a cell, each positionrepresenting one of a plurality of possible data values.

Optionally, each cell defines a symbol group, each symbol groupcomprising a plurality of Reed-Solomon symbols encoded by a plurality ofsaid data elements.

Optionally, each symbol comprises two halves, each half comprising 2bits of data represented by a macrodot occupying one of 4 possiblepositions within said half.

Optionally, said method comprises the further step of:

-   -   using said determined translation to sample and decode said        Reed-Solomon symbols.

In a further aspect there is provided a system for imaging a codingpattern disposed on a surface of a substrate, said system comprising:

(A) said substrate, wherein said coding pattern comprises:

-   -   a plurality of target elements defining a target grid, said        target grid comprising a plurality of cells, wherein neighboring        cells share target elements;    -   a plurality of data elements contained in each cell; and    -   a plurality of tags, each tag being defined by a plurality of        contiguous cells, each tag comprising respective tag data        encoded by a respective set of said data elements, wherein each        cell comprises one or more translation symbols encoded by a        respective set of said data elements, said one or more        translation symbols identifying a translation of said cell        relative to a tag containing said cell;

(B) an optical reader comprising:

-   -   an image sensor for capturing an image of a portion of said        coding pattern, said image sensor having a field-of-view of at        least one tag diameter and less than two tag diameters; and    -   a processor configured for performing the steps of:        -   (i) sampling and decoding one or more translation symbols;        -   (ii) determining a translation of one or more cells relative            to a tag containing said one or more cells; and        -   (iii) using said determined translation to sample and decode            said tag data.

Optionally, each cell comprises a pair of orthogonal translationsymbols, each orthogonal translation symbol identifying a respectiveorthogonal translation of said cell relative to a tag containing saidcell.

Optionally, each tag is square and comprises M² contiguous square cells,wherein M is an integer having a value of at least 2.

Optionally, each tag comprises N cells, and at least N translationsymbols form a third codeword with minimum distance N, wherein N is aninteger having a value of at least 4.

Optionally, said reader is an optically imaging pen having a nib.

BRIEF DESCRIPTION OF DRAWINGS

Preferred and other embodiments of the invention will now be described,by way of non-limiting example only, with reference to the accompanyingdrawings, in which:

FIG. 1 is a schematic of a the relationship between a sample printednetpage and its online page description;

FIG. 2 shows an embodiment of basic netpage architecture with variousalternatives for the relay device;

FIG. 3 shows the structure of a tag;

FIG. 4 shows a group of nine symbols and four targets;

FIG. 5 shows a left-handed symbol unit cell;

FIG. 6 shows a right-handed symbol unit cell;

FIG. 7 shows a centered symbol unit cell;

FIG. 8 shows the spacing of macrodot positions;

FIG. 9 shows the layout of symbols within a symbol group;

FIG. 10 shows an orientation code symbol layout;

FIG. 11 shows a translation code symbol layout;

FIG. 12 shows the layout of orientation and translation code symbolswithin a symbol group;

FIG. 13 shows a replicated local codeword A with the first copy shownshaded;

FIG. 14 shows common codewords B, C, D and E with codeword B shownshaded;

FIG. 15 shows a data stream fragment codeword F;

FIG. 16 shows the layout of a complete tag;

FIG. 17 shows a local codeword layout;

FIG. 18 is a flowchart of image processing;

FIG. 19 shows a nib and elevation of the pen held by a user;

FIG. 20 shows the pen held by a user at a typical incline to a writingsurface;

FIG. 21 is a lateral cross section through the pen;

FIG. 22A is a bottom and nib end partial perspective of the pen;

FIG. 22B is a bottom and nib end partial perspective with the fields ofillumination and field of view of the sensor window shown in dottedoutline;

FIG. 23 is a longitudinal cross section of the pen;

FIG. 24A is a partial longitudinal cross section of the nib and barrelmolding;

FIG. 24B is a partial longitudinal cross section of the IR LED's and thebarrel molding;

FIG. 25 is a ray trace of the pen optics adjacent a sketch of the inkcartridge;

FIG. 26 is a side elevation of the lens;

FIG. 27 is a side elevation of the nib and the field of view of theoptical sensor; and

FIG. 28 is a block diagram of the pen electronics.

DETAILED DESCRIPTION OF PREFERRED AND OTHER EMBODIMENTS 1.1 NetpageSystem Architecture

In a preferred embodiment, the invention is configured to work with thenetpage networked computer system, a detailed overview of which follows.It will be appreciated that not every implementation will necessarilyembody all or even most of the specific details and extensions discussedbelow in relation to the basic system. However, the system is describedin its most complete form to reduce the need for external reference whenattempting to understand the context in which the preferred embodimentsand aspects of the present invention operate.

In brief summary, the preferred form of the netpage system employs acomputer interface in the form of a mapped surface, that is, a physicalsurface which contains references to a map of the surface maintained ina computer system. The map references can be queried by an appropriatesensing device. Depending upon the specific implementation, the mapreferences may be encoded visibly or invisibly, and defined in such away that a local query on the mapped surface yields an unambiguous mapreference both within the map and among different maps. The computersystem can contain information about features on the mapped surface, andsuch information can be retrieved based on map references supplied by asensing device used with the mapped surface. The information thusretrieved can take the form of actions which are initiated by thecomputer system on behalf of the operator in response to the operator'sinteraction with the surface features.

In its preferred form, the netpage system relies on the production of,and human interaction with, netpages. These are pages of text, graphicsand images printed on ordinary paper, but which work like interactivewebpages. Information is encoded on each page using ink which issubstantially invisible to the unaided human eye. The ink, however, andthereby the coded data, can be sensed by an optically imaging sensingdevice and transmitted to the netpage system. The sensing device maytake the form of a clicker (for clicking on a specific position on asurface), a pointer having a stylus (for pointing or gesturing on asurface using pointer strokes), or a pen having a marking nib (formarking a surface with ink when pointing, gesturing or writing on thesurface). References herein to “pen” or “netpage pen” are provided byway of example only. It will, of course, be appreciated that the pen maytake the form of any of the sensing devices described above.

In one embodiment, active buttons and hyperlinks on each page can beclicked with the sensing device to request information from the networkor to signal preferences to a network server. In one embodiment, textwritten by hand on a netpage is automatically recognized and convertedto computer text in the netpage system, allowing forms to be filled in.In other embodiments, signatures recorded on a netpage are automaticallyverified, allowing e-commerce transactions to be securely authorized. Inother embodiments, text on a netpage may be clicked or gestured toinitiate a search based on keywords indicated by the user.

As illustrated in FIG. 1, a printed netpage 1 can represent ainteractive form which can be filled in by the user both physically, onthe printed page, and “electronically”, via communication between thepen and the netpage system. The example shows a “Request” formcontaining name and address fields and a submit button. The netpage 1consists of graphic data 2, printed using visible ink, and a surfacecoding pattern 3 superimposed with the graphic data. The surface codingpattern 3 comprises a collection of tags 4. One such tag 4 is shown inthe shaded region of FIG. 1, although it will be appreciated thatcontiguous tags 4, defined by the coding pattern 3, are densely tiledover the whole netpage 1.

The corresponding page description 5, stored on the netpage network,describes the individual elements of the netpage. In particular itdescribes the type and spatial extent (zone) of each interactive element(i.e. text field or button in the example), to allow the netpage systemto correctly interpret input via the netpage. The submit button 6, forexample, has a zone 7 which corresponds to the spatial extent of thecorresponding graphic 8.

As illustrated in FIG. 2, a netpage sensing device 400, such as the pendescribed in Section 3, works in conjunction with a netpage relay device601, which is an Internet-connected device for home, office or mobileuse. The pen 400 is wireless and communicates securely with the netpagerelay device 601 via a short-range radio link 9. In an alternativeembodiment, the netpage pen 400 utilises a wired connection, such as aUSB or other serial connection, to the relay device 601.

The relay device 601 performs the basic function of relaying interactiondata to a page server 10, which interprets the interaction data. Asshown in FIG. 2, the relay device 601 may, for example, take the form ofa personal computer 601 a, a netpage printer 601 b or some other relay601 c (e.g. personal computer or mobile phone incorporating a webbrowser).

The netpage printer 601 b is able to deliver, periodically or on demand,personalized newspapers, magazines, catalogs, brochures and otherpublications, all printed at high quality as interactive netpages.Unlike a personal computer, the netpage printer is an appliance whichcan be, for example, wall-mounted adjacent to an area where the morningnews is first consumed, such as in a user's kitchen, near a breakfasttable, or near the household's point of departure for the day. It alsocomes in tabletop, desktop, portable and miniature versions. Netpagesprinted on-demand at their point of consumption combine the ease-of-useof paper with the timeliness and interactivity of an interactive medium.

Alternatively, the netpage relay device 601 may be a portable device,such as a mobile phone or PDA, a laptop or desktop computer, or aninformation appliance connected to a shared display, such as a TV. Ifthe relay device 601 is not a netpage printer 601 b which printsnetpages digitally and on demand, the netpages may be printed bytraditional analog printing presses, using such techniques as offsetlithography, flexography, screen printing, relief printing androtogravure, as well as by digital printing presses, using techniquessuch as drop-on-demand inkjet, continuous inkjet, dye transfer, andlaser printing.

As shown in FIG. 2, the netpage sensing device 400 interacts with aportion of the tag pattern on a printed netpage 1, or other printedsubstrate such as a label of a product item 251, and communicates, via ashort-range radio link 9, the interaction to the relay device 601. Therelay 601 sends corresponding interaction data to the relevant netpagepage server 10 for interpretation. Raw data received from the sensingdevice 400 may be relayed directly to the page server 10 as interactiondata. Alternatively, the interaction data may be encoded in the form ofan interaction URI and transmitted to the page server 10 via a user'sweb browser 601 c. The web browser 601 c may then receive a URI from thepage server 10 and access a webpage via a webserver 201. In somecircumstances, the page server 10 may access application computersoftware running on a netpage application server 13.

The netpage relay device 601 can be configured to support any number ofsensing devices, and a sensing device can work with any number ofnetpage relays. In the preferred implementation, each netpage sensingdevice 400 has a unique identifier. This allows each user to maintain adistinct profile with respect to a netpage page server 10 or applicationserver 13.

Digital, on-demand delivery of netpages 1 may be performed by thenetpage printer 601 b, which exploits the growing availability ofbroadband Internet access. Netpage publication servers 14 on the netpagenetwork are configured to deliver print-quality publications to netpageprinters. Periodical publications are delivered automatically tosubscribing netpage printers via pointcasting and multicasting Internetprotocols. Personalized publications are filtered and formattedaccording to individual user profiles.

A netpage pen may be registered with a netpage registration server 11and linked to one or more payment card accounts. This allows e-commercepayments to be securely authorized using the netpage pen. The netpageregistration server compares the signature captured by the netpage penwith a previously registered signature, allowing it to authenticate theuser's identity to an e-commerce server. Other biometrics can also beused to verify identity. One version of the netpage pen includesfingerprint scanning, verified in a similar way by the netpageregistration server.

1.2 Netpages

Netpages are the foundation on which a netpage network is built. Theyprovide a paper-based user interface to published information andinteractive services.

As shown in FIG. 1, a netpage consists of a printed page (or othersurface region) invisibly tagged with references to an onlinedescription 5 of the page. The online page description 5 is maintainedpersistently by the netpage page server 10. The page descriptiondescribes the visible layout and content of the page, including text,graphics and images. It also describes the input elements on the page,including buttons, hyperlinks, and input fields. A netpage allowsmarkings made with a netpage pen on its surface to be simultaneouslycaptured and processed by the netpage system.

Multiple netpages (for example, those printed by analog printingpresses) can share the same page description. However, to allow inputthrough otherwise identical pages to be distinguished, each netpage maybe assigned a unique page identifier. This page ID has sufficientprecision to distinguish between a very large number of netpages.

Each reference to the page description 5 is repeatedly encoded in thenetpage pattern. Each tag (and/or a collection of contiguous tags)identifies the unique page on which it appears, and thereby indirectlyidentifies the page description 5. Each tag also identifies its ownposition on the page. Characteristics of the tags are described in moredetail below.

Tags are typically printed in infrared-absorptive ink on any substratewhich is infrared-reflective, such as ordinary paper, or in infraredfluorescing ink. Near-infrared wavelengths are invisible to the humaneye but are easily sensed by a solid-state image sensor with anappropriate filter.

A tag is sensed by a 2D area image sensor in the netpage sensing device,and the tag data is transmitted to the netpage system via the nearestnetpage relay device 601. The pen 400 is wireless and communicates withthe netpage relay device 601 via a short-range radio link. It isimportant that the pen recognize the page ID and position on everyinteraction with the page, since the interaction is stateless. Tags areerror-correctably encoded to make them partially tolerant to surfacedamage.

The netpage page server 10 maintains a unique page instance for eachunique printed netpage, allowing it to maintain a distinct set ofuser-supplied values for input fields in the page description 5 for eachprinted netpage 1.

2 Netpage Tags 2.1 Tag Data Content

Each tag 4 identifies an absolute location of that tag within a regionof a substrate.

Each interaction with a netpage should also provide a region identitytogether with the tag location. In a preferred embodiment, the region towhich a tag refers coincides with an entire page, and the region ID istherefore synonymous with the page ID of the page on which the tagappears. In other embodiments, the region to which a tag refers can bean arbitrary subregion of a page or other surface. For example, it cancoincide with the zone of an interactive element, in which case theregion ID can directly identify the interactive element.

As described in the Applicant's previous applications (e.g. U.S. Pat.No. 6,832,717), the region identity may be encoded discretely in eachtag 4. As will be described in more detail below, the region identitymay be encoded by a plurality of contiguous tags in such a way thatevery interaction with the substrate still identifies the regionidentity, even if a whole tag is not in the field of view of the sensingdevice.

Each tag 4 should preferably identify an orientation of the tag relativeto the substrate on which the tag is printed. Orientation data read froma tag enables the rotation (yaw) of the pen 400 relative to thesubstrate to be determined

A tag 4 may also encode one or more flags which relate to the region asa whole or to an individual tag. One or more flag bits may, for example,signal a sensing device to provide feedback indicative of a functionassociated with the immediate area of the tag, without the sensingdevice having to refer to a description of the region. A netpage penmay, for example, illuminate an “active area” LED when in the zone of ahyperlink.

A tag 4 may also encode a digital signature or a fragment thereof. Tagsencoding (partial) digital signatures are useful in applications whereit is required to verify a product's authenticity. Such applications aredescribed in, for example, US Publication No. 2007/0108285, the contentsof which is herein incorporated by reference. The digital signature maybe encoded in such a way that it can be retrieved from every interactionwith the substrate. Alternatively, the digital signature may be encodedin such a way that it can be assembled from a random or partial scan ofthe substrate.

It will, of course, be appreciated that other types of information (e.g.tag size, MIME data etc) may also be encoded into each tag or aplurality of tags, as will be explained in more detail below.

2.2 General Tag Structure

As described above in connection with FIG. 1, the netpage surface codinggenerally consists of a dense planar tiling of tags. In the presentinvention, each tag 4 is represented by a coding pattern which containstwo kinds of elements. Referring to FIGS. 3 and 4, the first kind ofelement is a target element. Target elements in the form of target dots301 allow a tag 4 to be located in an image of a coded surface, andallow the perspective distortion of the tag to be inferred. The secondkind of element is a data element in the form of a macrodot 302 (seeFIG. 8). Each macrodot 302 encodes a data value. As described in theApplicant's earlier disclosures (e.g. U.S. Pat. No. 6,832,717), thepresence or absence of a macrodot was be used to represent a binary bit.However, the tag structure of the present invention encodes a data valueusing pulse position modulation, which is described in more detail inSection 2.3.

The coding pattern 3 is represented on the surface in such a way as toallow it to be acquired by an optical imaging system, and in particularby an optical system with a narrowband response in the near-infrared.The pattern 3 is typically printed onto the surface using a narrowbandnear-infrared ink.

FIG. 3 shows the structure of a complete tag 4 with target elements 301shown. The tag 4 is square and contains twenty-five target elements.Those target elements 301 located at the edges and corners of the tag(sixteen in total) are shared by adjacent tags and define the perimeterof the tag. In contrast with the Applicant's previous tag designs, thehigh number of target elements 301 advantageously facilitates accuratedetermination of a perspective distortion of the tag 4 when it is imagedby the sensing device 400. This improves the accuracy of tag sensingand, ultimately, position determination.

The tag 4 consists of a square array of sixteen symbol groups 303.Symbol groups 303 are demarcated by the target elements 301 so that eachsymbol group is contained within a square defined by four targetelements. Adjacent symbol groups 303 are contiguous and share targets.

Since the target elements 301 are all identical, they do not demarcateone tag from its adjacent tags. Viewed purely at the level of targetelements, only symbol groups 303, which define cells of a target grid,can be distinguished—the tags 4 themselves are indistinguishable byviewing only the target elements. Hence, tags 4 must be aligned with thetarget grid as part of tag decoding.

2.3 Symbol Groups

As shown in FIG. 4, each of the sixteen symbol groups 303 comprises ninedata symbols 304, each data symbol being part of a codeword. Inaddition, each symbol group 303 comprises an orientation code (‘OC’) andone symbol from each of two orthogonal translation codes (‘TC’). Theorientation code allows the orientation of the tag in the field of viewto be determined. The two orthogonal translation codes allow thetranslation of tag(s) relative to the symbol groups 303 in the field ofview to be determined. In other words, the translation codes enablealignment of the ‘invisible’ tags with the target grid.

Each symbol 304 contains four bits of data. Generally, each symbol 304is divided into two halves, and each of these two halves {h₀,h₁} isencoded using two-bit pulse position modulation, i.e. using a singlemacrodot 302 in one of four positions {p₀₀, p₀₁, p₁₀, p₁₁} in the half.The half h₀ encodes the least-significant bits of the symbol; the halfh₁ encodes the most-significant bits.

The layout of a left-handed symbol unit cell 304A, i.e. as used bysymbols 0, 2, 4 and 6, is shown in FIG. 5. The layout of a right-handedsymbol unit cell 304B, i.e. as used by symbols 1, 3, 5 and 7, is shownin FIG. 6. The layout of the centered symbol unit cell, i.e. as used bysymbol 8, is shown in FIG. 7.

The spacing of macrodots 302 in both dimensions, as shown in FIG. 8, isspecified by the parameter s. It has a nominal value of 95 μm, based on6 dots printed at a pitch of 1600 dots per inch.

As shown in FIG. 9, the left-handed and right-handed symbol layouts arerepeated four times at four orientations within a symbol group 303, andthe centered symbol layout appears once in the center of the symbolgroup.

The orientation code consists of a single symbol which contains two bitsof data, and is encoded using pulse position modulation. FIG. 10 showsthe layout of an orientation code symbol 310.

Each translation code symbol contains two bits of data, and is encodedusing pulse position modulation. FIG. 11 shows the layout of one of thetranslation code symbols 312.

As shown in FIG. 12, the translation code symbol layout appears twice attwo orientations within a symbol group to indicate the horizontal andvertical translation of the symbol group relative to the tag (via the HTand VT symbols respectively). The orientation code symbol layout appearsonce to indicate the orientation of the tag (via the OR symbol).

2.4 Targets and Macrodots

Only macrodots 302 are part of the representation of a symbol 304 in thepattern. The outline of a symbol 304 is shown in, for example, FIGS. 3,4 and 12 merely to elucidate more clearly the structure of a tag.

A macrodot 302 is nominally circular with a nominal diameter of (4/6)s.However, it is allowed to vary in size by ±15% according to thecapabilities of the device used to produce the pattern.

A target 301 is nominally circular with a nominal diameter of (12/6)s.However, it is allowed to vary in size by ±15% according to thecapabilities of the device used to produce the pattern.

Each tag 4 has a width of 40 s and a length of 40 s.

The macrodot spacing, and therefore the overall scale of the tagpattern, is allowed to vary by ±11% according to the capabilities of thedevice used to produce the pattern. Any deviation from the nominal scaleis recorded in each tag (in a tag size ID field) to allow accurategeneration of position samples.

These tolerances are independent of one another. They may be refinedwith reference to particular printer characteristics.

2.5 Encoded Codes and Codewords

In the following section, each symbol in FIGS. 13 to 16 is shown with aunique label. The label consists of an alphabetic prefix whichidentifies which codeword the symbol is part of, and a numeric suffixwhich indicates the index of the symbol within the codeword. Forsimplicity only data symbols 304 are shown, not orientation andtranslation code symbols, and the centered data symbol is shown as acentered square rather than as four fragments (as shown in FIGS. 4 and7).

Although some symbol labels are shown rotated to indicate the symmetryof the layout of certain codewords, the layout of each symbol isdetermined by its position within a symbol group, as indicated in FIG.9, and not by the rotation of the symbol label (as described in, forexample, the Applicant's US Publication No. 2006/146069).

2.5.1 Orientation Code

Each symbol group encodes a one-symbol 4-ary orientation code. The codeis defined by the set of codewords {{0}, {1}, {2},{3}}. These codewordscorrespond to clockwise tag rotations of 0, 90, 180 and 270 degreesrespectively. Each codeword corresponds to its predecessor read at anorientation of 90 degrees, hence a single codeword gives rise to theentire code when rotated. The code has a minimum distance of 1. Thecodes of an entire tag form a code with a minimum distance of 16,allowing 7 symbol errors to be corrected. If additional symbols arevisible within the field of view then they can be used for even morerobust decoding. A minimum of three orientation codes, with a combinedminimum distance of 3, must be decoded to allow a single symbol error tobe corrected.

2.5.2 Translation Code

Each row of symbol groups and each column of symbol groups encodes afour-symbol 4-ary cyclic position code (The Applicant's cyclic positioncodes are described in U.S. Pat. No. 7,082,562, the contents of which isherein incorporated by reference). The code is defined by the codeword{0, 1, 2, 3} It has a minimum distance of 4, allowing a single symbolerror to be corrected. The codes of an entire tag form a code with aminimum distance of 16, allowing 7 symbol errors to be corrected. Ifadditional symbols are visible within the field of view then they can beused for even more robust decoding.

The top left corner of an un-rotated tag is identified by a symbol groupwhich encodes the first symbol in two orthogonal cyclic positioncodewords.

2.5.3 Local Codeword

The tag locally contains one complete data codeword which is used toencode information unique to the tag, which is typically the x- andy-coordinates of the tag. The codeword is of a 2⁴-ary (15,7)Reed-Solomon code. The tag therefore encodes up to 28 bits ofinformation unique to the tag.

The local codeword is replicated four times within the tag. This ensuresthat an image of the tag pattern large enough to contain only onecomplete tag is guaranteed to contain a complete copy of the localcodeword, irrespective of the alignment of the image with the tagpattern. Hence, unlike the tag patterns described in, for example, U.S.Pat. No. 6,832,717, a field of view spanning at least two whole tags isnot required to capture location data. This advantageously places fewerdemands on the image sensor, most notably the requirement for fewerimage pixels or, alternatively, more accurate capturing of images usinga smaller field of view.

The layout of the local codeword is shown in FIG. 13.

2.5.4 Common Codewords

The tag 4 also contains four data codewords which encode informationcommon to a set of contiguous tags, which is typically the regionidentity. Each codeword is of a 2⁴-ary (15,11) Reed-Solomon code. Thetag therefore encodes up to 176 bits of information common to a set ofcontiguous tags.

The common codewords are replicated throughout the tag pattern in such away that an image of the tag pattern large enough to contain a completetag (i.e. an image having a diameter of about one tag diagonal) isguaranteed to contain a complete copy of each common codeword,irrespective of the alignment of the image with the tag pattern. Thecomplete copy of each common codeword may consist of fragments which liein different tags.

The layout of the four common codewords is shown in FIG. 14. (As notedearlier, even though some symbol labels are shown rotated in FIG. 14 toindicate symmetry, the layout of a particular symbol is determined byits position within a symbol group).

2.5.5 Data Stream Fragment Codewords

The tag 4 optionally contains a codeword which encodes a fragment of alarger data stream embedded in the surface coding. Each codeword is of a2⁴-ary (15,11) Reed-Solomon code. The tag therefore optionally encodes44 bits of the data stream. The embedded data stream is discussedfurther in Section 2.8.3.

The layout of the data stream fragment codeword is shown in FIG. 15.

2.5.6 Complete Tag

FIG. 16 shows the layout of the data of a complete tag, with each symbolgroup comprising nine data symbols. The orientation and translationcodes are not shown in FIG. 16.

2.6 Reed-Solomon Encoding 2.6.1 Local Codeword

The local codeword is encoded using a 2⁴-ary (15,7) Reed-Solomon code.The code encodes 28 data bits (i.e. seven symbols) and 32 redundancybits (i.e. eight symbols) in each codeword. Its error-detecting capacityis eight symbols. Its error-correcting capacity is four symbols.

As shown in FIG. 17, redundancy coordinates r_(i) and data coordinatesd_(i) of the code are indexed from left to right according to the powerof their corresponding polynomial terms. The symbols A_(i) of a completecodeword are indexed from right to left to match the bit order of thedata. The bit order within each symbol is the same as the overall bitorder.

The code has the following primitive polynominal:p(x)=x ⁴ +x+1

The code has the following generator polynominal:g(x)=(x+α)(x+α ²)(x+α ³) . . . (x+α ⁸)

The layout of the local codeword in the tag includes a spare symbol, soit would be possible to extend or augment the code to use this extrasymbol.

2.6.2 Common and Data Stream Fragment Codewords

The common and data stream fragment codewords are encoded using a 2⁴-ary(15,11) Reed-Solomon code. The code encodes 44 data bits (i.e. elevensymbols) and 16 redundancy bits (i.e. four symbols) in each codeword.Its error-detecting capacity is four symbols. Its error-correctingcapacity is two symbols.

The redundancy coordinates and data coordinates of the code are indexedfrom left to right according to the power of their correspondingpolynomial terms. The symbols of a complete codeword are indexed fromright to left to match the bit order of the data. The bit order withineach symbol is the same as the overall bit order.

The code has the same primitive polynominal as the local codeword code.

The code has the following generator polynominal:g(x)=(x+α)(x+α ²)(x+α ³)(x+α ⁴)

For a detailed description of Reed-Solomon codes, reference is made toWicker and Bhargava, Reed-Solomon Codes and Their Applications, IEEEPress, 1994, the contents of which is herein incorporated by reference.

The layout of each common and data stream fragment codeword in the tagincludes a spare symbol, so it would be possible to extend or augmentthe code to use this extra symbol.

2.7 Tag Coordinate Space

The tag coordinate space has two orthogonal axes labelled x and yrespectively. When the positive x axis points to the right then thepositive y axis points down.

The surface coding does not specify the location of the tag coordinatespace origin on a particular tagged surface, nor the orientation of thetag coordinate space with respect to the surface. This information isapplication-specific. For example, if the tagged surface is a sheet ofpaper, then the application which prints the tags onto the paper mayrecord the actual offset and orientation, and these can be used tonormalise any digital ink subsequently captured in conjunction with thesurface.

The position encoded in a tag is defined in units of tags. Byconvention, the tag position is taken to be the position of the top lefttarget in each tag.

2.8 Tag Information Content 2.8.1 Field Definitions

Table 1 defines the information fields embedded in the surface coding.

TABLE 1 Field Definitions width field (bits) description unique to tagactive area flag 1 A flag indicating whether the area^(a) immediatelysurrounding a tag intersects an active area. b′1′ indicatesintersection. x coordinate 13 The unsigned x coordinate of the tag^(b).y coordinate 13 The unsigned y coordinate of the tag^(b). common totagged region encoding format 8 The format of the encoding. 0: thepresent encoding. Other values are reserved region flags 8 Flagscontrolling the interpretation of region data (see Table 2). tag size ID8 The ID of the tag size. region ID 96 The ID of the region containingthe tags. high-order coordinate 4 The width of the high-order part ofthe width (w) x and y coordinates of the tag high-order x w^(c)High-order part of the x coordinate of coordinate the tag^(d).high-order y w^(c) High-order part of the y coordinate of coordinate thetag^(d). signature 36 − 2w^(c) A signature of the region. CRC 16 ACRC^(e) of common tag data. (Cyclic Redundancy Redundancy Check) ^(a)thediameter of the area, centered on the tag, is nominally 2.5 times thediagonal size of the tag; this is to accommodate the worst-case distancebetween the nib position and the imaged tag ^(b)allows a maximumcoordinate value of 31 m for the nominal tag size of 3.81 mm (based on1600 dpi, 6 dots per macrodot, and 40 macrodots per tag) ^(c)where w isthe high-order coordinate width ^(d)expands the maximum coordinate valueto just over 1000 km ^(e)CCITT CRC-16 [see ITU, Interface between DataTerminal Equipment (DTE) and Data Circuit-terminating Equipment (DCE)for terminals operating in the packet mode and connected to public datanetworks by dedicated circuit, ITU-T X.25 (10/96)], computed in bitorder on raw codeword data (see Table 3).

An active area is an area within which any captured input should beimmediately forwarded to the corresponding Netpage server 10 forinterpretation. This also allows the Netpage server 10 to signal to theuser that the input has had an immediate effect. Since the server hasaccess to precise region definitions, any active area indication in thesurface coding can be imprecise so long as it is inclusive.

TABLE 2 Region flags bit meaning 0 Region ID is an EPC. Used forHyperlabel (see, for example, U.S. Pat. No. 7,225,979). Otherwise theregion ID is a Netpage region ID. 1 Region ID contains embedded data(see Section 2.8.3). Otherwise the region contains no embedded data. 2Embedded data is a signature (see Section 2.8.4). Otherwise the datatype is specified in the embedded data block (see Table 4). 3 Embeddeddata is a short signature (see Section 2.8.4) 4 EPC contains a layoutnumber. Used for non-serialized Hyperlabel applications, where theserial number is replaced by a layout number (see US2007/0108285).Otherwise the EPC contains a serial number. 5 Region is non-interactivei.e. x and y coordinates are zero. Otherwise x and y coordinates arepresent. 6-7 Reserved for future use. Must be zero.

The width of the high-order coordinate fields, if non-zero, reduces thewidth of the signature field by a corresponding number of bits. Fullcoordinates are computed by prepending each high-order coordinate fieldto its corresponding coordinate field.

2.8.2 Mapping of Fields to Codewords

Table 3 defines how the information fields map to codewords.

TABLE 3 Mapping of fields to codewords codeword codeword bits fieldwidth field bits A 0 active area flag 1 all 1 reserved^(a) 1 all 14:2  xcoordinate 13 all 27:15 y coordinate 13 all B (35 − 2w):0 signature 36 −2w all (35 − w):(36 − 2w) high-order x w all coordinate 35:(36 − w)high-order y w all coordinate 43:36 region flags 8 7:0 C 27:0  region ID28 27:0  43:28 CRC^(b) 16 all D 7:0 encoding format 8 all 15:8  tag sizeID 8 all 19:16 high-order 4 3:0 coordinate width (w) 43:20 region ID 2451:28 E 43:0  region ID 44 95:52 ^(a)must be zero ^(b)the CRC iscomputed in bit order on the data portions of the B, C, D and Ecodewords, in that order, excluding the CRC field itself

If the high-order coordinate width is non-zero, then special care mustbe taken on boundaries between tags where the low-order x or ycoordinate wraps, otherwise codeword errors may be introduced. Ifwrapping is detected from the low-order x or y coordinate (i.e. itcontains all zero bits or all one bits), then the correspondinghigh-order coordinate can be adjusted before codeword decoding. In theabsence of genuine symbol errors in the high-order coordinate, this willprevent the inadvertent introduction of codeword errors.

2.8.3 Embedded Codewords

If the “region contains embedded data” flag in the region flags is setthen the surface coding contains embedded data. The data is encoded inmultiple contiguous tags' data fragments, and is replicated in thesurface coding as many times as it will fit.

The embedded data is encoded in such a way that a random and partialscan of the surface coding containing the embedded data can besufficient to retrieve the entire data. The scanning system reassemblesthe data from retrieved fragments, and reports to the user whensufficient fragments have been retrieved without error.

As shown in Table 4, a 176-bit data block encodes 136 bits of data. Theblock data is encoded in the data fragments of a contiguous group offour tags arranged in a 2×2 square. A tag belongs to a block whoseinteger coordinate is the tag's coordinate divided by 2. Within eachblock the data is arranged into tags with increasing x coordinate withinincreasing y coordinate.

Data of arbitrary size is encoded into a superblock consisting of acontiguous set of blocks arranged in a rectangle. The size of thesuperblock is encoded in each block. A block belongs to a superblockwhose integer coordinate is the block's coordinate divided by thesuperblock size. Within each superblock the data is arranged into blockswith increasing x coordinate within increasing y coordinate.

The superblock is replicated in the surface coding as many times as itwill fit, including partially along the edges of the surface coding.

The data encoded in the superblock may include more precise typeinformation, more precise size information, and more extensive errordetection and/or correction data.

TABLE 4 Embedded data block field width description data type 8 The typeof data in the superblock. Values include: 0: type is indicated byregion flags 1: MIME superblock width 8 The width of the superblock, inblocks. superblock height 8 The width of the superblock, in blocks. data136 The block data. CRC 16 A CRC of the block data total 176 a. CCITTCRC-16 computed in bit order

2.8.4 Region Signatures

If the “region has signature” flag in the region flags is set then thesignature field contains a signature with a maximum width of 36 bits.The signature is typically a random number associated with the region IDin a secure database. The signature is ideally generated using a trulyrandom process, such as a quantum process [“Quantis—Quantum RandomNumber Generator”, http://www.idquantique.com/qrng.html; “Random NumbersGeneration using Quantum Physics”,http://www.idquantique.com/files/whitpaperquantis.pdf, the contents ofwhich are herein incorporated by reference], or by distilling randomnessfrom random events [Schneier, B., “Distilling Randomness”, AppliedCryptography, 2nd Edition, pp. 426-428, the contents of which is hereinincorporated by reference].

In an online environment the signature can be validated, in conjunctionwith the region ID, by querying a server with access to the securedatabase.

If the “region contains embedded data” and “embedded data is asignature” flags in the region flags are set then the surface codingcontains an embedded cryptographic digital signature of the region ID.

If the “embedded signature is a short signature” flag is set, then theembedded signature is a 160-bit signature encoded in a single blockconsisting of just the signature and a 16-bit CRC, i.e. with thesuperblock parameters omitted.

In an online environment any number of signature fragments can be used,in conjunction with the region ID and optionally the random signature,to validate the signature by querying a server with knowledge of thefull signature or the corresponding private key.

In an offline (or online) environment the entire signature can berecovered by reading multiple tags, and can then be validated using thecorresponding public signature key. The actual length and type of thesignature are determined from the region ID during signature validation.

Signature verification is discussed in the Applicant's US PublicationNo. 2007/0108285, the contents of which are herein incorporated byreference.

2.8.5 MIME Data

If the embedded data type is “MIME” then the superblock containsMultipurpose Internet Mail Extensions (MIME) data according to RFC 2045,RFC 2046 and related RFCs (the contents of which are incorporated hereinby reference). The MIME data consists of a header followed by a body.The header is encoded as a variable-length text string preceded by an8-bit string length. The body is encoded as a variable-lengthtype-specific octet stream preceded by a 16-bit size in big-endianformat.

The basic top-level media types described in RFC 2046 include text,image, audio, video and application.

RFC 2425 and RFC 2426 (the contents of which are herein incorporated byreference) describe a text subtype for directory information suitable,for example, for encoding contact information which might appear on abusiness card.

2.9 Tag Imaging and Decoding

The minimum imaging field of view required to guarantee acquisition ofdata from an entire tag has a diameter of 56.6 s (i.e. 40√2 s), allowingfor arbitrary rotation and translation of the surface coding in thefield of view. Notably, the imaging field of view does not have to belarge enough to guarantee capture of an entire tag—the arrangement ofthe data symbols within each tag ensures that any tag-sized field ofview captures the requisite information in full, irrespective of whethera whole tag is actually visible.

As used herein, the term “tag-sized” is used to mean an area of the samesize and dimensions as a tag. In terms of imaging the coding pattern,the imaging field-of-view is typically a circle. The imaging circleshould have a diameter which is sufficiently large to contain atag-sized portion of the coding pattern. Accordingly, the imagingfield-of-view should preferably have diameter of at least one tagdiameter and less than two tag diameters. Importantly, the field-of-viewis not required to be at least two tag diameters, in contrast with priorart tag designs, because it is not essential in the present invention tocapture an entire tag in the field of view.

Optionally, the field-of-view has a diameter of about one tag diagonalplus one or two macrodot units. The extra macrodot unit ensures thatpartial macrodots never have to be read at the edge of the field ofview. In the present context, a “tag diameter” is given to mean thelength of a tag diagonal.

Given a maximum macrodot spacing of 106 microns, this gives a requiredfield of view of 6 mm.

Table 5 gives pitch ranges achievable for the present surface coding fordifferent sampling rates and hence image sensor array sizes.

TABLE 5 Pitch ranges achievable for present surface coding for differentimage sensor sizes; dot pitch = 600 dpi, macrodot pitch = 2 dots, fieldof view = 4.8 mm, viewing distance = 30 mm, nib-to-FOV separation = 1mm, sampling rate = 2 image sensor size pitch range scaled^(a) imagesensor size 150 −30 to +39 187 161 −35 to +44 202 176 −40 to +48 220 194−45 to +53 242 ^(a)scaled by 1.25 (6 mm/4.8 mm) to accommodate maximummacrodot spacing

FIG. 18 shows a tag image processing and decoding process flow up to thestage of sampling and decoding the data codewords. Firstly, a raw image802 of the tag pattern is acquired (at 800), for example via an imagesensor such as a CCD image sensor, CMOS image sensor, or a scanninglaser and photodiode image sensor. The raw image 802 is then typicallyenhanced (at 804) to produce an enhanced image 806 with improvedcontrast and more uniform pixel intensities. Image enhancement mayinclude global or local range expansion, equalisation, and the like. Theenhanced image 806 is then typically filtered (at 808) to produce afiltered image 810. Image filtering may consist of low-pass filtering,with the low-pass filter kernel size tuned to obscure macrodots 302 butto preserve targets 301. The filtering step 808 may include additionalfiltering (such as edge detection) to enhance target features 301.Encoding of data codewords 304 using pulse position modulation (PPM)provides a more uniform coding pattern 3 than simple binary dot encoding(as described in, for example, U.S. Pat. No. 6,832,717). Advantageously,this helps separate targets 301 from data areas, thereby allowing moreeffective low-pass filtering of the PPM-encoded data compared tobinary-coded data.

Following low-pass filtering, the filtered image 810 is then processed(at 812) to locate the targets 301. This may consist of a search fortarget features whose spatial inter-relationship is consistent with theknown geometry of the tag pattern. Candidate targets may be identifieddirectly from maxima in the filtered image 810, or may be the subject offurther characterization and matching, such as via their (binary orgrayscale) shape moments (typically computed from pixels in the enhancedimage 806 based on local maxima in the filtered image 810), as describedin U.S. Pat. No. 7,055,739, the contents of which is herein incorporatedby reference.

The identified targets 301 are then assigned to a target grid 816. Eachcell of the grid 816 contains a symbol group 303, and several symbolgroups will of course be visible in the image. At this stage, individualtags 4 will not be identifiable in the target grid 816, since thetargets 301 do not demarcate one tag from another.

To allow macrodot values to be sampled accurately, the perspectivetransform of the captured image must be inferred. Four of the targets301 are taken to be the perspective-distorted corners of a square ofknown size in tag space, and the eight-degree-of-freedom perspectivetransform 822 is inferred (at 820), based on solving the well-understoodequations relating the four tag-space and image-space point pairs.Calculation of the 2D perspective transform is described in detail in,for example, Applicant's U.S. Pat. No. 6,832,717, the contents of whichis herein incorporated by reference.

Since each image will contain at least 9, at least 16 or at least 25targets arranged in a square grid, the accuracy of calculating the 2Dperspective transform is improved compared to the Applicant's previoustag designs described in, for example, U.S. Pat. No. 6,832,717. Hence,more accurate position calculation can be achieved with the tag designof the present invention.

The inferred tag-space to image-space perspective transform 822 is usedto project each known macrodot position in tag space into image space.Since all bits in the tags are represented by PPM-encoding, the presenceor absence of each macrodot 302 can be determined using a localintensity reference, rather than a separate intensity reference. Thus,PPM-encoding provides improved data sampling compared with pure binaryencoding.

The next stage determines the orientation of the tag(s), or portionsthereof, in the field of view. At least 3 orientation codewords aresampled and decoded (at 824) to provide the orientation 826. Robustorientation determination is provided since many symbol groups 303 arecontained in the image, with each symbol group containing an orientationsymbol, as described above. Moreover, and as described in Section 2.5.1,since N orientation symbols in a tag form a code with minimum distanceN, the code is capable of correcting (N−1)/2 errors. Hence, orientationdetermination is very robust and capable of correcting errors, dependingon the number of orientation symbols sampled.

After determination of the orientation 826, the next stage samples anddecodes two or more orthogonal translation codewords (at 828) todetermine the relative translation 830 of tags(s) in the field of viewrelative to the target grid. This enables alignment of the tags 4 withthe target grid 818, thereby allowing individual tag(s), or portionsthereof, to be distinguished in the coding pattern 3 in the field ofview. Since each symbol group 303 contains a translation code, multipletranslation codes can be sampled to provide robust translationdetermination. As described in Section 2.5.2, the translation code is acyclic position code. Since each row and each column of a tag contains Msymbol groups, the code has minimum distance M×M. This allows veryrobust determination of the alignment of tags 4 with the target grid818. The alignment needs to be both robust and accurate since there aremany possible alignments when each tag 4 contains multiple symbol groups303.

Once initial imaging and decoding has yielded the 2D perspectivetransform, the orientation, and the translation of tag(s) relative tothe target grid, the data codewords 304 can then be sampled and decoded836 to yield the requisite decoded codewords 838.

Decoding of the data codewords 304 typically proceeds as follows:

-   -   sample and decode local Reed-Solomon codeword    -   determine tag x-y location from codeword    -   determine nib x-y location from tag x-y location and perspective        transform    -   determine active area status of nib location with reference to        active area flag    -   sample common Reed-Solomon codewords    -   decode common Reed-Solomon codewords    -   verify tag data CRC    -   on decode error flag bad region ID sample    -   determine encoding type, and reject unknown encoding    -   determine region flags    -   determine region ID    -   encode region ID, nib x-y location, and nib active area status        in digital ink (“interaction data”)    -   route digital ink based on region flags.

The skilled person will appreciate that the decoding sequence describedabove represents one embodiment of the present invention. It will, ofcourse, be appreciated that the interaction data sent from the pen 400to the netpage system may include other data e.g. digital signature fromembedded data (see Section 2.8.4), MIME data (see Section 2.8.5), penmode (see US 2007/125860), orientation data, pen ID, nib ID etc.

An example of interpreting interaction data, received by the netpagesystem from the netpage pen 400, is discussed briefly above. A moredetailed discussion of how the netpage system may interpret interactiondata can be found in the Applicant's previously-filed applications (see,for example, US 2007/130117 and US 2007/108285, the contents of whichare herein incorporated by reference).

3. Netpage Pen 3.1 Functional Overview

The active sensing device of the netpage system may take the form of aclicker (for clicking on a specific position on a surface), a pointerhaving a stylus (for pointing or gesturing on a surface using pointerstrokes), or a pen having a marking nib (for marking a surface with inkwhen pointing, gesturing or writing on the surface). For a descriptionof various netpage sensing devices, reference is made to U.S. Pat. No.7,105,753; U.S. Pat. No. 7,015,901; U.S. Pat. No. 7,091,960; and USPublication No. 2006/0028459, the contents of each of which are hereinincorporated by reference.

It will be appreciated that the present invention may utilize anysuitable optical reader. However, the Netpage pen 400 will be describedherein as one such example.

The Netpage pen 400 is a motion-sensing writing instrument which worksin conjunction with a tagged Netpage surface (see Section 2). The penincorporates a conventional ballpoint pen cartridge for marking thesurface, an image sensor and processor for simultaneously capturing theabsolute path of the pen on the surface and identifying the surface, aforce sensor for simultaneously measuring the force exerted on the nib,and a real-time clock for simultaneously measuring the passage of time.

While in contact with a tagged surface, as indicated by the forcesensor, the pen continuously images the surface region adjacent to thenib, and decodes the nearest tag in its field of view to determine boththe identity of the surface, its own instantaneous position on thesurface and the pose of the pen. The pen thus generates a stream oftimestamped position samples relative to a particular surface, andtransmits this stream to the Netpage server 10. The sample streamdescribes a series of strokes, and is conventionally referred to asdigital ink (DInk). Each stroke is delimited by a pen down and a pen upevent, as detected by the force sensor. More generally, any dataresulting from an interaction with a Netpage, and transmitted to theNetpage server 10, is referred to herein as “interaction data”.

The pen samples its position at a sufficiently high rate (nominally 100Hz) to allow a Netpage server to accurately reproduce hand-drawnstrokes, recognise handwritten text, and verify hand-written signatures.

The Netpage pen also supports hover mode in interactive applications. Inhover mode the pen is not in contact with the paper and may be somesmall distance above the surface of the paper (or other substrate). Thisallows the position of the pen, including its height and pose to bereported. In the case of an interactive application the hover modebehaviour can be used to move a cursor without marking the paper, or thedistance of the nib from the coded surface could be used for toolbehaviour control, for example an air brush function.

The pen includes a Bluetooth radio transceiver for transmitting digitalink via a relay device to a Netpage server. When operating offline froma Netpage server the pen buffers captured digital ink in non-volatilememory. When operating online to a Netpage server the pen transmitsdigital ink in real time.

The pen is supplied with a docking cradle or “pod”. The pod contains aBluetooth to USB relay. The pod is connected via a USB cable to acomputer which provides communications support for local applicationsand access to Netpage services.

The pen is powered by a rechargeable battery. The battery is notaccessible to or replaceable by the user. Power to charge the pen can betaken from the USB connection or from an external power adapter throughthe pod. The pen also has a power and USB-compatible data socket toallow it to be externally connected and powered while in use.

The pen cap serves the dual purpose of protecting the nib and theimaging optics when the cap is fitted and signaling the pen to leave apower-preserving state when uncapped.

3.2 Ergonomics and Layout

FIG. 19 shows a rounded triangular profile gives the pen 400 anergonomically comfortable shape to grip and use the pen in the correctfunctional orientation. It is also a practical shape for accommodatingthe internal components. A normal pen-like grip naturally conforms to atriangular shape between thumb 402, index finger 404 and middle finger406.

As shown in FIG. 20, a typical user writes with the pen 400 at a nominalpitch of about 30 degrees from the normal toward the hand 408 when held(positive angle) but seldom operates a pen at more than about 10 degreesof negative pitch (away from the hand). The range of pitch angles overwhich the pen 400 is able to image the pattern on the paper has beenoptimised for this asymmetric usage. The shape of the pen 400 helps toorient the pen correctly in the user's hand 408 and to discourage theuser from using the pen “upside-down”. The pen functions “upside-down”but the allowable tilt angle range is reduced.

The cap 410 is designed to fit over the top end of the pen 400, allowingit to be securely stowed while the pen is in use. Multi colour LEDsilluminate a status window 412 in the top edge (as in the apex of therounded triangular cross section) of the pen 400 near its top end. Thestatus window 412 remains un-obscured when the cap is stowed. Avibration motor is also included in the pen as a haptic feedback system(described in detail below).

As shown in FIG. 21, the grip portion of the pen has a hollow chassismolding 416 enclosed by a base molding 528 to house the othercomponents. The ink cartridge 414 for the ball point nib (not shown)fits naturally into the apex 420 of the triangular cross section,placing it consistently with the user's grip. This in turn providesspace for the main PCB 422 in the centre of the pen and for the battery424 in the base of the pen. By referring to FIG. 22Aa, it can be seenthat this also naturally places the tag-sensing optics 426 unobtrusivelybelow the nib 418 (with respect to nominal pitch). The nib molding 428of the pen 400 is swept back below the ink cartridge 414 to preventcontact between the nib molding 428 and the paper surface when the penis operated at maximum pitch.

As best shown in FIG. 22B, the imaging field of view 430 emerges througha centrally positioned IR filter/window 432 below the nib 418, and twonear-infrared illumination LEDs 434, 436 emerge from the two bottomcorners of the nib molding 428. Each LED 434, 436 has a correspondingillumination field 438, 440.

As the pen is hand-held, it may be held at an angle that causesreflections from one of the LED's that are detrimental to the imagesensor. By providing more than one LED, the LED causing the offendingreflections can be extinguished.

Specific details of the pen mechanical design can be found in USPublication No. 2006/0028459, the contents of which are hereinincorporated by reference.

3.3 Pen Feedback Indications

FIG. 23 is a longitudinal cross section through the centre-line if thepen 400 (with the cap 410 stowed on the end of the pen). The penincorporates red and green LEDs 444 to indicate several states, usingcolours and intensity modulation. A light pipe 448 on the LEDs 444transmit the signal to the status indicator window 412 in the tubemolding 416. These signal status information to the user includingpower-on, battery level, untransmitted digital ink, network connectionon-line, fault or error with an action, detection of an “active area”flag, detection of an “embedded data” flag, further data sampling torequired to acquire embedded data, acquisition of embedded datacompleted etc.

A vibration motor 446 is used to haptically convey information to theuser for important verification functions during transactions. Thissystem is used for important interactive indications that might bemissed due to inattention to the LED indicators 444 or high levels ofambient light. The haptic system indicates to the user when:

-   -   The pen wakes from standby mode    -   There is an error with an action    -   To acknowledge a transaction

3.4 Pen Optics

The pen incorporates a fixed-focus narrowband infrared imaging system.It utilizes a camera with a short exposure time, small aperture, andbright synchronised illumination to capture sharp images unaffected bydefocus blur or motion blur.

TABLE 6 Optical Specifications Magnification ^(~)0.225 Focal length of6.0 mm lens Viewing distance 30.5 mm Total track length 41.0 mm Aperturediameter 0.8 mm Depth of field _(.) ^(~)/ 6.5 mm Exposure time 200 usWavelength 810 nm Image sensor size 140 × 140 pixels Pixel size 10 umPitch range ^(~)15 to_(.) 45 deg Roll range ^(~)30 to_(.) 30 deg Yawrange 0 to 360 deg Minimum sampling 2.25 pixels per rate macrodotMaximum pen 0.5 m/s velocity ¹Allowing 70 micron blur radius²Illumination and filter ³Pitch, roll and yaw are relative to the axisof the pen

Cross sections showing the pen optics are provided in FIGS. 24A and 24B.An image of the Netpage tags printed on a surface 548 adjacent to thenib 418 is focused by a lens 488 onto the active region of an imagesensor 490. A small aperture 494 ensures the available depth of fieldaccommodates the required pitch and roll ranges of the pen 400.

First and second LEDs 434 and 436 brightly illuminate the surface 549within the field of view 430. The spectral emission peak of the LEDs ismatched to the spectral absorption peak of the infrared ink used toprint Netpage tags to maximise contrast in captured images of tags. Thebrightness of the LEDs is matched to the small aperture size and shortexposure time required to minimise defocus and motion blur.

A longpass IR filter 432 suppresses the response of the image sensor 490to any coloured graphics or text spatially coincident with imaged tagsand any ambient illumination below the cut-off wavelength of the filter432. The transmission of the filter 432 is matched to the spectralabsorption peak of the infrared ink to maximise contrast in capturedimages of tags. The filter also acts as a robust physical window,preventing contaminants from entering the optical assembly 470.

3.5 Pen Imaging System

A ray trace of the optic path is shown in FIG. 25. The image sensor 490is a CMOS image sensor with an active region of 140 pixels squared. Eachpixel is 10 μm squared, with a fill factor of 93%. Turning to FIG. 26,the lens 488 is shown in detail. The dimensions are:

-   -   D=3 mm    -   R1=3.593 mm    -   R2=15.0 mm    -   X=0.8246 mm    -   Y=1.0 mm    -   Z=0.25 mm

This gives a focal length of 6.15 mm and transfers the image from theobject plane (tagged surface 548) to the image plane (image sensor 490)with the correct sampling frequency to successfully decode all imagesover the specified pitch, roll and yaw ranges. The lens 488 is biconvex,with the most curved surface facing the image sensor. The minimumimaging field of view 430 required to guarantee acquisition ofsufficient tag data with each interaction is dependent on the specificcoding pattern. The required field of view for the coding pattern of thepresent invention is described in Section 2.9.

The required paraxial magnification of the optical system is defined bythe minimum spatial sampling frequency of 2.25 pixels per macrodot forthe fully specified tilt range of the pen 400, for the image sensor 490of 10 μm pixels. Typically, the imaging system employs a paraxialmagnification of 0.225, the ratio of the diameter of the inverted imageat the image sensor to the diameter of the field of view at the objectplane, on an image sensor 490 of minimum 128×128 pixels. The imagesensor 490 however is 140×140 pixels, in order to accommodatemanufacturing tolerances. This allows up to ±120 μm (12 pixels in eachdirection in the plane of the image sensor) of misalignment between theoptical axis and the image sensor axis without losing any of theinformation in the field of view.

The lens 488 is made from Poly-methyl-methacrylate (PMMA), typicallyused for injection moulded optical components. PMMA is scratchresistant, and has a refractive index of 1.49, with 90% transmission at810 nm. The lens is biconvex to assist moulding precision and features amounting surface to precisely mate the lens with the optical barrelmolding 492.

A 0.8 mm diameter aperture 494 is used to provide the depth of fieldrequirements of the design.

The specified tilt range of the pen is 15.0 to 45.0 degree pitch, with aroll range of 30.0 to 30.0 degrees. Tilting the pen through itsspecified range moves the tilted object plane up to 6.3 mm away from thefocal plane. The specified aperture thus provides a corresponding depthof field of 6.5 mm, with an acceptable blur radius at the image sensorof 16 μm.

Due to the geometry of the pen design, the pen operates correctly over apitch range of 33.0 to 45.0 degrees.

Referring to FIG. 27, the optical axis 550 is pitched 0.8 degrees awayfrom the nib axis 552. The optical axis and the nib axis converge towardthe paper surface 548. With the nib axis 552 perpendicular to the paper,the distance A between the edge of the field of view 430 closest to thenib axis and the nib axis itself is 1.2 mm.

The longpass IR filter 432 is made of CR-39, a lightweight thermosetplastic heavily resistant to abrasion and chemicals such as acetone.Because of these properties, the filter also serves as a window. Thefilter is 1.5 mm thick, with a refractive index of 1.50. Each filter maybe easily cut from a large sheet using a CO₂ laser cutter.

3.6 Electronics Design

TABLE 3 Electrical Specifications Processor ARM7 (Atmel AT91FR40162)running at 80 MHz with 256 kB SRAM and 2 MB flash memory Digital inkstorage 5 hours of writing capacity Bluetooth 1.2 Compliance USBCompliance 1.1 Battery standby 12 hours (cap off), >4 weeks (cap on)time Battery writing 4 hours of cursive writing (81% pen down, timeassuming easy offload of digital ink) Battery charging 2 hours timeBattery Life Typically 300 charging cycles or 2 years (whichever occursfirst) to 80% of initial capacity. Battery ~340 mAh at 3.7 V,Lithium-ion Polymer Capacity/Type (LiPo)

FIG. 28 is a block diagram of the pen electronics. The electronicsdesign for the pen is based around five main sections. These are:

-   -   the main ARM7 microprocessor 574,    -   the image sensor and image processor 576,    -   the Bluetooth communications module 578,    -   the power management unit IC (PMU) 580 and    -   the force sensor microprocessor 582.

3.6.1 Microprocessor

The pen uses an Atmel AT91FR40162 microprocessor (see Atmel, AT91 ARMThumb Microcontrollers—AT91FR40162 Preliminary,http://www.keil.com/dd/docs/datashts/atmel/at91fr40162.pdf) running at80 MHz. The AT91FR40162 incorporates an ARM7 microprocessor, 256 kBytesof on-chip single wait state SRAM and 2 MBytes of external flash memoryin a stack chip package.

This microprocessor 574 forms the core of the pen 400. Its dutiesinclude:

-   -   setting up the Jupiter image sensor 584,    -   decoding images of Netpage coding pattern (see Section 2.9),        with assistance from the image processing features of the image        sensor 584, for inclusion in the digital ink stream along with        force sensor data received from the force sensor microprocessor        582,    -   setting up the power management IC (PMU) 580,    -   compressing and sending digital ink via the Bluetooth        communications module 578, and    -   programming the force sensor microprocessor 582.

The ARM7 microprocessor 574 runs from an 80 MHz oscillator. Itcommunicates with the Jupiter image sensor 576 using a UniversalSynchronous Receiver Transmitter (USRT) 586 with a 40 MHz clock. TheARM7 574 communicates with the Bluetooth module 578 using a UniversalAsynchronous Receiver Transmitter (UART) 588 running at 115.2 kbaud.Communications to the PMU 580 and the Force Sensor microprocessor (FSP)582 are performed using a Low Speed Serial bus (LSS) 590. The LSS isimplemented in software and uses two of the microprocessor's generalpurpose IOs.

The ARM7 microprocessor 574 is programmed via its JTAG port.

3.6.2 Image Sensor

The ‘Jupiter’ Image Sensor 584 (see US Publication No. 2005/0024510, thecontents of which are incorporated herein by reference) contains amonochrome sensor array, an analogue to digital converter (ADC), a framestore buffer, a simple image processor and a phase lock loop (PLL). Inthe pen, Jupiter uses the USRT's clock line and its internal PLL togenerate all its clocking requirements. Images captured by the sensorarray are stored in the frame store buffer. These images are decoded bythe ARM7 microprocessor 574 with help from the ‘Callisto’ imageprocessor contained in Jupiter. The Callisto image processor performs,inter alia, low-pass filtering of captured images (see Section 2.9 andUS Publication No. 2005/0024510) before macrodot sampling and decodingby the microprocessor 574.

Jupiter controls the strobing of two infrared LEDs 434 and 436 at thesame time as its image array is exposed. One or other of these twoinfrared LEDs may be turned off while the image array is exposed toprevent specular reflection off the paper that can occur at certainangles.

3.6.3 Bluetooth Communications Module

The pen uses a CSR BlueCore4-External device (see CSR,BlueCore4-External Data Sheet rev c, 6 Sep. 2004) as the Bluetoothcontroller 578. It requires an external 8 Mbit flash memory device 594to hold its program code. The BlueCore4 meets the Bluetooth v1.2specification and is compliant to v0.9 of the Enhanced Data Rate (EDR)specification which allows communication at up to 3 Mbps.

A 2.45 GHz chip antenna 486 is used on the pen for the Bluetoothcommunications.

The BlueCore4 is capable of forming a UART to USB bridge. This is usedto allow USB communications via data/power socket 458 at the top of thepen 456.

Alternatives to Bluetooth include wireless LAN and PAN standards such asIEEE 802.11 (Wi-Fi) (see IEEE, 802.11 Wireless Local Area Networks,http://grouper.ieee.org/groups/802/11/index.html), IEEE 802.15 (seeIEEE, 802.15 Working Group for WPAN,http://grouper.ieee.org/groups/802/15/index.html), ZigBee (see ZigBeeAlliance, http://www.zigbee.org), and WirelessUSB Cypress (seeWirelessUSB LR 2.4-GHz DSSS Radio SoC,http://www.cypress.com/cfuploads/img/products/cywusb6935.pdf), as wellas mobile standards such as GSM (see GSM Association,http://www.gsmworld.com/index.shtml), GPRS/EDGE, GPRS Platform,http://www.gsmworld.com/technology/gprs/index.shtml), CDMA (see CDMADevelopment Group, http://www.cdg.org/, and Qualcomm,http://www.qualcomm.com), and UMTS (see 3rd Generation PartnershipProject (3GPP), http://www.3gpp.org).

3.6.4 Power Management Chip

The pen uses an Austria Microsystems AS3603 PMU 580 (see AustriaMicrosystems, AS3603 Multi-Standard Power Management Unit Data Sheetv2.0). The PMU is used for battery management, voltage generation, powerup reset generation and driving indicator LEDs and the vibrator motor.

The PMU 580 communicates with the ARM7 microprocessor 574 via the LSSbus 590.

3.6.5 Force Sensor Subsystem

The force sensor subsystem comprises a custom Hokuriku force sensor 500(based on Hokuriku, HFD-500 Force Sensor,http://www.hdk.cojp/pdf/eng/e1381AA.pdf), an amplifier and low passfilter 600 implemented using op-amps and a force sensor microprocessor582.

The pen uses a Silicon Laboratories C8051F330 as the force sensormicroprocessor 582 (see Silicon Laboratories, C8051F330/1 MCU DataSheet, rev 1.1). The C8051F330 is an 8051 microprocessor with on chipflash memory, 10 bit ADC and 10 bit DAC. It contains an internal 24.5MHz oscillator and also uses an external 32.768 kHz tuning fork.

The Hokuriku force sensor 500 is a silicon piezoresistive bridge sensor.An op-amp stage 600 amplifies and low pass (anti-alias) filters theforce sensor output. This signal is then sampled by the force sensormicroprocessor 582 at 5 kHz.

Alternatives to piezoresistive force sensing include capacitive andinductive force sensing (see Wacom, “Variable capacity condenser andpointer”, US Patent Application 20010038384, filed 8 Nov. 2001, andWacom, Technology, http://www.wacom-components.com/english/tech.asp).

The force sensor microprocessor 582 performs further (digital) filteringof the force signal and produces the force sensor values for the digitalink stream. A frame sync signal from the Jupiter image sensor 576 isused to trigger the generation of each force sample for the digital inkstream. The temperature is measured via the force sensormicroprocessor's 582 on chip temperature sensor and this is used tocompensate for the temperature dependence of the force sensor andamplifier. The offset of the force signal is dynamically controlled byinput of the microprocessor's DAC output into the amplifier stage 600.

The force sensor microprocessor 582 communicates with the ARM7microprocessor 574 via the LSS bus 590. There are two separate interruptlines from the force sensor microprocessor 582 to the ARM7microprocessor 574. One is used to indicate that a force sensor sampleis ready for reading and the other to indicate that a pen down/up eventhas occurred.

The force sensor microprocessor flash memory is programmed in-circuit bythe ARM7 microprocessor 574.

The force sensor microprocessor 582 also provides the real time clockfunctionality for the pen 400. The RTC function is performed in one ofthe microprocessor's counter timers and runs from the external 32.768kHz tuning fork. As a result, the force sensor microprocessor needs toremain on when the cap 472 is on and the ARM7 574 is powered down. Hencethe force sensor microprocessor 582 uses a low power LDO separate fromthe PMU 580 as its power source. The real time clock functionalityincludes an interrupt which can be programmed to power up the ARM7 574.

The cap switch 602 is monitored by the force sensor microprocessor 582.When the cap assembly 472 is taken off (or there is a real time clockinterrupt), the force sensor microprocessor 582 starts up the ARM7 572by initiating a power on and reset cycle in the PMU 580.

3.7 Pen Software

The Netpage pen software comprises that software running onmicroprocessors in the Netpage pen 400 and Netpage pod.

The pen contains a number of microprocessors, as detailed in Section3.6. The Netpage pen software includes software running on the AtmelARM7 CPU 574 (hereafter CPU), the Force Sensor microprocessor 582, andalso software running in the VM on the CSR BlueCore Bluetooth module 578(hereafter pen BlueCore). Each of these processors has an associatedflash memory which stores the processor specific software, together withsettings and other persistent data. The pen BlueCore 578 also runsfirmware supplied by the module manufacturer, and this firmware is notconsidered a part of the Netpage pen software.

The pod contains a CSR BlueCore Bluetooth module (hereafter podBlueCore). The Netpage pen software also includes software running inthe VM on the pod BlueCore.

As the Netpage pen 400 traverses a Netpage tagged surface 548, a streamof correlated position and force samples are produced. This stream isreferred to as DInk. Note that DInk may include samples with zero force(so called “Hover DInk”) produced when the Netpage pen is in proximityto, but not marking, a Netpage tagged surface.

The CPU component of the Netpage pen software is responsible for DInkcapture, tag image processing and decoding (in conjunction with theJupiter image sensor 576), storage and offload management, hostcommunications, user feedback and software upgrade. It includes anoperating system (RTOS) and relevant hardware drivers. In addition, itprovides a manufacturing and maintenance mode for calibration,configuration or detailed (non-field) fault diagnosis. The Force Sensormicroprocessor 582 component of the Netpage pen software is responsiblefor filtering and preparing force samples for the main CPU. The penBlueCore VM software is responsible for bridging the CPU UART 588interface to USB when the pen is operating in tethered mode. The penBlueCore VM software is not used when the pen is operating in Bluetoothmode.

The pod BlueCore VM software is responsible for sensing when the pod ischarging a pen 400, controlling the pod LEDs appropriately, andcommunicating with the host PC via USB.

For a detailed description of the software modules, reference is made toUS Publication No. 2006/0028459, the contents of which are hereinincorporated by reference.

The present invention has been described with reference to a preferredembodiment and number of specific alternative embodiments. However, itwill be appreciated by those skilled in the relevant fields that anumber of other embodiments, differing from those specificallydescribed, will also fall within the spirit and scope of the presentinvention. Accordingly, it will be understood that the invention is notintended to be limited to the specific embodiments described in thepresent specification, including documents incorporated bycross-reference as appropriate. The scope of the invention is onlylimited by the attached claims.

1. A method of imaging a coding pattern disposed on a surface of asubstrate, said method comprising the steps of: (a) operativelypositioning an optical reader relative to said surface and capturing animage of a portion of said coding pattern, said coding patterncomprising: a plurality of target elements defining a target grid, saidtarget grid comprising a plurality of cells, wherein neighboring cellsshare target elements; a plurality of data elements contained in eachcell; and a plurality of tags, each tag being defined by a plurality ofcontiguous cells, each tag comprising respective local tag data encodedby a respective set of said data elements, wherein each tag comprises aplurality of replications of said local tag data; (b) sampling anddecoding said local tag data contained in said imaged portion; and (c)determining a position of said reader, wherein said portion has adiameter of at least one tag diameter and less than two tag diameters.2. The method of claim 1, wherein each tag is square and comprises fourreplications of said local tag data, each replication being positionedwithin a respective quarter of said tag.
 3. The method of claim 1,wherein said local tag data identifies a location of a respective tag.4. The method of claim 1, wherein said data elements are macrodots. 5.The method of claim 4, wherein a portion of data is represented by amacrodot occupying one of a plurality of possible positions within acell, each position representing one of a plurality of possible datavalues.
 6. The method of claim 1, wherein each cell defines a symbolgroup, each symbol group comprising a plurality of Reed-Solomon symbolsencoded by a plurality of said data elements.
 7. The method of claim 6,wherein each symbol comprises two halves, each half comprising 2 bits ofdata represented by a macrodot occupying one of 4 possible positionswithin said half.
 8. The method of claim 6, wherein said local tag datais encoded as a local codeword comprised of a set of said Reed-Solomonsymbols.
 9. The method of claim 8, wherein each tag comprises aplurality of replications of said local codeword, such that anytag-sized portion of said coding pattern is guaranteed to contain saidlocal codeword irrespective of whether a whole tag is contained in saidportion.
 10. The method of claim 9, wherein each tag is square andcomprises four replications of said local codeword, each replicationbeing positioned within a respective quarter of said tag.
 11. The systemof claim 1, wherein each tag is square and comprises four replicationsof said local tag data, each replication being positioned within arespective quarter of said tag.
 12. The system of claim 1, wherein saidlocal tag data identifies a location of a respective tag.
 13. The systemof claim 1, wherein said data elements are macrodots.
 14. The system ofclaim 13, wherein a portion of data is represented by a macrodotoccupying one of a plurality of possible positions within a cell, eachposition representing one of a plurality of possible data values.
 15. Asystem for imaging a coding pattern disposed on a surface of asubstrate, said system comprising: (A) said substrate, wherein saidcoding pattern comprises: a plurality of target elements defining atarget grid, said target grid comprising a plurality of cells, whereinneighboring cells share target elements; a plurality of data elementscontained in each cell; and a plurality of tags, each tag being definedby a plurality of contiguous cells, each tag comprising respective localtag data encoded by a respective set of said data elements, wherein eachtag comprises a plurality of replications of said local tag data, (B) anoptical reader comprising: an image sensor for capturing an image of aportion of said coding pattern, said image sensor having a field-of-viewof at least one tag diameter and less than two tag diameters; and aprocessor configured for performing the steps of: (i) sampling anddecoding said local tag data; and (ii) determining a position of saidreader.
 16. The system of claim 15, wherein each cell defines a symbolgroup, each symbol group comprising a plurality of Reed-Solomon symbolsencoded by a plurality of said data elements.
 17. The system of claim16, wherein each symbol comprises two halves, each half comprising 2bits of data represented by a macrodot occupying one of 4 possiblepositions within said half.
 18. The system of claim 16, wherein saidlocal tag data is encoded as a local codeword comprised of a set of saidReed-Solomon symbols.
 19. The system of claim 18, wherein each tagcomprises a plurality of replications of said local codeword, such thatany tag-sized portion of said coding pattern is guaranteed to containsaid local codeword irrespective of whether a whole tag is contained insaid portion.
 20. The system of claim 15, wherein said reader is anoptically imaging pen having a nib.